我试图模拟一个根据输入返回不同结果的网络电话。
我的测试用例如下:
class RestService1 implements IRestService{
public static String checkSomething(){
return "something";
}
}
class RestService2 implements IRestService{
public static String checkSomething(){
return "somethingElse";
}
}
class TestClass {
void test(){
final RestService1 restServiceMock1=new RestService();
new NonStrictExpectations() {
@SuppressWarnings("unused")
WebAPI webAPI;
{
webAPI.getHandle( IRestService.class );
result=restServiceMock1;
}
};
String check=webAPI.getHandle.getSomething();
//here check should have "something"
//modify some data received as output
final RestService2 restServiceMock2=new RestService();
new NonStrictExpectations() {
@SuppressWarnings("unused")
WebAPI webAPI;
{
webAPI.getHandle( IRestService.class );
result=restServiceMock2;
}
};
String check2=webAPI.getHandle.getSomething()
//here check2 should have "somethingElse"
}
注意: webAPI.getHandle()返回一个完全加载的执行webCall的IRestService实例。
使用--javaagent:{jar location}在maven中运行时,此测试用例给出了Duplicate Expectation错误 但运行时没有任何问题,并且在Eclipse中运行时也是如此。
是否有某种方法可以先删除期望设置或其他一些可以用下一个覆盖初始期望的更改?
答案 0 :(得分:0)
测试方法需要分为两个测试,一个用于RestService1
,另一个用于RestService2
。