【问题标题】:Spring Mockito TestNG - Mocks persist across testsSpring Mockito TestNG - 模拟在测试中持续存在
【发布时间】:2014-12-18 09:50:09
【问题描述】:

鉴于我的测试班的以下成员

@Mock
private Gateway gateway;
@Autowired
@InjectMocks
private TransactionManager transactionManager;

@BeforeClass
public void before() {
    MockitoAnnotations.initMocks(this);
}

TransactionManager 在内部使用网关,并与@Autowired 连接。当我在这个类中运行测试时,它们通过了。但是,当我在一个单独的类中运行测试时,我希望使用Gateway 的具体实现,它们使用的是模拟的Gateway

【问题讨论】:

    标签: java spring testng mockito spring-test


    【解决方案1】:

    您必须查看 Mockito 的 TestNG 子项目。您可以在我的 Mockito Cookbook 存储库中查看使用示例 - https://github.com/marcingrzejszczak/mockito-cookbook/blob/master/chapter01/src/test/java/com/blogspot/toomuchcoding/book/chapter1/_3_MockitoAnnotationsTestNg/assertj/MeanTaxFactorCalculatorTestNgTest.java

    要使用监听器,您必须将 https://github.com/mockito/mockito/tree/master/subprojects/testng/src/main/java/org/mockito/testng 文件夹的内容复制到您的项目中,因为 mockito-testng 尚未发布。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。您可以在测试类上使用@DirtiesContext。

      http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/annotation/DirtiesContext.html

      在这种情况下,您不需要任何额外的包或代码。测试后将重新初始化上下文。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-05
        • 1970-01-01
        • 2021-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多