当测试用例为同一静态方法定义了多个期望时,JMockIt会在mvn中抛出DuplicateExpectation

时间:2014-08-07 11:14:09

标签: maven jmockit

我试图模拟一个根据输入返回不同结果的网络电话。

我的测试用例如下:

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中运行时也是如此。

是否有某种方法可以先删除期望设置或其他一些可以用下一个覆盖初始期望的更改?

1 个答案:

答案 0 :(得分:0)

测试方法需要分为两个测试,一个用于RestService1,另一个用于RestService2

相关问题