Jakarta ee 如何在JEE6应用程序中存根外部接口以进行测试?

Jakarta ee 如何在JEE6应用程序中存根外部接口以进行测试?,jakarta-ee,testing,mocking,Jakarta Ee,Testing,Mocking,我需要在JEE6应用程序中测试一个外部接口。 根据我所做的研究,似乎有3种选择 使用替代品 使用@注释 使用Mockito 哪个选项最适合使用?如果您正在进行单元测试,您应该首先尝试使用伪造的。只需从UI中提取接口并将其作为伪接口实现即可。 例如: 您将构建假: class FakeUI implements MyUI { @Override void displayText(String text) { myFieldVariable = text; }

我需要在JEE6应用程序中测试一个外部接口。 根据我所做的研究,似乎有3种选择

  • 使用替代品
  • 使用@注释
  • 使用Mockito

  • 哪个选项最适合使用?

    如果您正在进行单元测试,您应该首先尝试使用伪造的。只需从UI中提取接口并将其作为伪接口实现即可。 例如:

    您将构建假:

    class FakeUI implements MyUI {
        @Override
        void displayText(String text) {
            myFieldVariable = text;
        }
    }
    
    最后一个是测试的内部类,它可以执行以下操作:

    @Test
    public itShouldDisplayHello() {
        myBean.print("hello")
        assertEquals("hello", myFieldVariable);
    }
    

    就是这样,你甚至不需要模拟,简单的旧java。

    这是一个单元测试、集成测试还是什么?这将是一个集成测试,所以我不想测试外部API,对吧?我应该把它删掉,因为我们不开发,而且有单元测试覆盖了该API的行为。我知道这个问题有点主观,但我在寻找最佳实践。Mockito对我来说似乎是最好的选择,因为它更简单,我不必在arquillian中通过部署不同的beans.xml或添加@beans来更改部署设置
    @Test
    public itShouldDisplayHello() {
        myBean.print("hello")
        assertEquals("hello", myFieldVariable);
    }