Spring Mockito TestNG - Mocks坚持测试

时间:2014-12-18 09:50:09

标签: java spring testng mockito spring-test

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

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

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

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

2 个答案:

答案 0 :(得分:3)

您必须查看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尚未发布。

答案 1 :(得分:0)

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

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

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