Jmockit抽象类实例

发布于 2024-07-22 05:53:26 字数 153 浏览 5 评论 0原文

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

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

I want to mock a method in abstract class say 'A' and also need to pass and instance of type A to the methods I am unit testing.

Is there a way to create an instance using Jmockit like Mockit.newemptyProxy How do I solve this scenario

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小嗲 2024-07-29 05:53:26

您可以简单地这样做:


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

   new ClassUnderTest(mock).doStuff();
}

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

You could do it simply like this:


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

   new ClassUnderTest(mock).doStuff();
}

Note the "A mock" parameter in the test method.

还不是爱你 2024-07-29 05:53:26

也许这是一个愚蠢的问题,但在这种情况下你真的需要 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));
} 

Maybe this is a silly question, but do you actually need JMockit in this situation? Can't you just make a subclass of A and override the method you want to mock? Something like this:

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));
} 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文