我想在抽象类中模拟一个方法,说'A',并且还需要将 A 类型的实例传递给我单元测试的方法。
有没有办法使用像Mockit.newemptyProxy这样的Jmockit创建实例如何解决这个问题
答案 0 :(得分:2)
你可以这样做:
@Test
public void mockAbstractClassA(final A mock)
{
new Expectations() {{
mock.doThis();
mock.doThat(); returns(123);
}};
new ClassUnderTest(mock).doStuff();
}
请注意测试方法中的“A mock”参数。
答案 1 :(得分:0)
也许这是一个愚蠢的问题,但在这种情况下你真的需要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));
}