鉴于我的测试类的以下成员
@Mock
private Gateway gateway;
@Autowired
@InjectMocks
private TransactionManager transactionManager;
@BeforeClass
public void before() {
MockitoAnnotations.initMocks(this);
}
TransactionManager
在内部使用网关,并与@Autowired
连接。当我在这个课程中运行测试时,它们会通过。但是,当我在一个单独的类中运行测试时,我期望使用Gateway
的具体实现,他们正在使用模拟的Gateway
。
答案 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。
在这种情况下,您不需要任何额外的包或代码。测试后,上下文将重新初始化。