我在我的应用程序中使用了spring,我想为我的所有类编写单元测试。我从我的应用程序调用几个外部Web服务,我想用Mockito来嘲笑它们,因为我只是想测试我的功能。在弹簧中使用Mockito注释
可以说我有以下情形
这是我的web界面
public interface MyWebService {
public String getSomeData(int id);
}
我使用上述服务这样
public interface MyService {
int doSomethingElse(String str);
}
public class MyServiceImpl implements MyService {
private MyWebService myWebService;
int doSomethingElse(String str) {
.....
myWebService.getSomeData(id);
...
}
}
public interface MyService1 {
Stirng methodToBeTested();
}
public class Class1 implements MyService1{
@Resource
private MyService myService;
public Stirng methodToBeTested() {
myService.doSomethingElse("..");
}
}
我写了如下的UINT测试用例。我在这里监视MyService以运行单元测试。
public class class1Test {
@Spy
MyService myService;
@Resource
@InjectMocks
Class1 class1;
public void setUPTest() {
MockitoAnnotations.initMocks(this);
Mockito.doReturn(123).when(myService).doSomethingElse("someString");
}
@Test
public void methodToBeTestedTest() {
this.setUPTest();
...
class1.methodToBeTested();
}
}
当我运行测试时,我看到的是,我从Web服务中得到的值是我在提到时存在的问题。
任何人都可以帮助我吗? (和如有用的断言是否存在过渡的方法调用的)
参见http://stackoverflow.com/questions/2457239/injecting-mockito-mocks-into-a-spring-bean – Vadzim 2013-10-17 10:57:00