未模拟的JMockit方法不起作用

时间:2016-02-07 23:22:55

标签: methods jmockit expectations

示例类

,

有人能解释这里发生了什么以及为什么设定某些方法的期望会改变其他方法的行为吗?

2 个答案:

答案 0 :(得分:0)

我没有找到答案,所以我采取了另一种方式:

new MockUp<ClassA>()
{   
    @Mock
    String someMethod()
    {
        return expectedVar;
    }
};

现在它按预期工作了

答案 1 :(得分:0)

实际上,测试工作正常。运行以下完整示例,它将通过:

public class ExampleTest {
    static class ClassA {
        String someMethod() { return ""; }

        void execute() {
            if ("expectedVar".equals(someMethod())) throw new MyException();
        }
    }

    static class MyException extends RuntimeException {}

    @Tested ClassA objA;

    @Test(expected = MyException.class)
    public void exampleTest() {
        final String expectedVar = "expectedVar";

        new Expectations(objA) {{ objA.someMethod(); result = expectedVar; }};

        objA.execute();
    }
}