Jmockit抽象类实例

时间:2009-05-20 22:30:37

标签: jmockit

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

有没有办法使用像Mockit.newemptyProxy这样的Jmockit创建实例如何解决这个问题

2 个答案:

答案 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));
}