2

我想模拟抽象类中的一个方法说'A'并且还需要将类型A的实例传递给我正在单元测试的方法。

有没有办法使用 Jmockit 创建实例,例如 Mockit.newemptyProxy 我该如何解决这种情况

4

2 回答 2

2

你可以像这样简单地做到这一点:


@Test
public void mockAbstractClassA(final A mock)
{
   new Expectations() {{
      mock.doThis();
      mock.doThat(); returns(123);
   }};

   new ClassUnderTest(mock).doStuff();
}

注意测试方法中的“A mock”参数。

于 2009-06-20T01:06:27.367 回答
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));
} 
于 2009-06-02T00:39:22.890 回答