我想模拟抽象类中的一个方法说'A'并且还需要将类型A的实例传递给我正在单元测试的方法。
有没有办法使用 Jmockit 创建实例,例如 Mockit.newemptyProxy 我该如何解决这种情况
我想模拟抽象类中的一个方法说'A'并且还需要将类型A的实例传递给我正在单元测试的方法。
有没有办法使用 Jmockit 创建实例,例如 Mockit.newemptyProxy 我该如何解决这种情况
你可以像这样简单地做到这一点:
@Test
public void mockAbstractClassA(final A mock)
{
new Expectations() {{
mock.doThis();
mock.doThat(); returns(123);
}};
new ClassUnderTest(mock).doStuff();
}
注意测试方法中的“A mock”参数。
也许这是一个愚蠢的问题,但在这种情况下你真的需要 JMockit 吗?你不能只创建一个子类A
并覆盖你想要模拟的方法吗?像这样的东西:
class MyMockA extends A {
@Override
int myMethod(int x) {
// do stuff
}
}
@Test
public void test_A_handler() {
A a = new MyMockA();
A_handler testSubject = new A_handler();
assertEquals(123, testSubject.handleA(a));
}