使用NonStrictExpectations result =时,JMockit inccompatableClassChangeError

时间:2017-11-20 18:59:11

标签: exception junit jmockit

好的我正在使用JMockit 1.19并尝试使用NonStrictExpectations使方法抛出异常时遇到此问题。但是我一直得到这个“IncompatableClassChangeError”。我不允许在工作中分享我的确切代码,但我已经用下面的示例代码重新创建了问题,这给了我同样的问题

被测试的类

public class TestClassRemove {

    A a = new A();

    public String testMethod(){

        String s = null;

        try{
            s = a.getA();
        }
        catch(Exception e){
            System.out.println("caught exception");
        }

        return s;
    }
}

A类,其方法由TestClassRemove

调用
public class A {

    public String getA(){
        return "hello";
    }
}

我遇到问题的测试类

@RunWith(JMockit.class)
public class TestingTests {

    private TestClassRemove testClassRemove = new TestClassRemove();

    @Mocked
    A a;

    @Test (expected=Exception.class)
    public void testResultsEqual(){

        new NonStrictExpectations(){{
            a.getA();
            result = new Exception(); //This throws "IncompatableClassChangeError"
        }};

        testClassRemove.testMethod();
    }
}

由于某种原因,行“result = new Exception();”抛出了这个“IncompatableClassChangeError”。任何想法?????????

对于命名不佳的课程

抱歉

1 个答案:

答案 0 :(得分:0)

好的,所以在经过近一周的工作并询问办公室里的每个人之后,我终于解决了这个问题。我在构建路径上链接了另一个项目,以及导致此问题的原因。它不仅影响了这一点,而且还阻止了eclEmma与Mockito的合作。使用JMockit,Mockito和eclEmma链接构建路径上的项目将导致错误。