spring - 带有少量集成测试的 @SpyBean 无法正常工作
问题描述
我的集成测试中有 @SpyBean 字段的奇怪行为。例如,我有一些集成测试:
package a;
@SpringBootTest
public class A {
@SpyBean
public MySpyBeanCandidate spyBean;
@Test
public void test1 {
// some work
Mockito.verify(spyBean, Mockito.atLeastOnce()).methodName(eq("String value"), anyString());
}
}
package a;
@SpringBootTest
public class B {
@SpyBean
public MySpyBeanCandidate spyBean;
@Test
public void test2 {
// some work
Mockito.verify(spyBean, Mockito.atLeastOnce()).methodName(eq("String value"), anyString());
}
}
问题是当我尝试单独执行它们时它们成功执行,但如果我将它们一起运行,在第二个测试中 Mockito.verify(..) 将抛出异常:Wanted but not invoked
. 但是我已经对其进行了调试并检查了该方法 ( methodName
) 是否正确调用。谁知道为什么会这样?
解决方案
@DirtiesContext
在这种情况下,每种@Test
方法都对我有用。
推荐阅读
- c# - 如何解析已在构造函数中使用键控过滤器参数注册的组件?
- gstreamer - VLC 不理解 RTSP 流:此比特流不包含 Vorbis 音频数据
- windows-10 - WindowsIdentity.Impersonate 在 2018 年 4 月 (1803) 更新后抛出“灾难性故障(HRESULT 异常:0x8000FFFF (E_UNEXPECTED))”
- python - Pandas applying function to multiple dataframes in a list
- r - How to subset matrices in an list in R?
- c# - 无法在 asp.net core 2.0 中从 https://localhost:44374/swagger/v1/swagger.json 读取 swagger JSON
- php - 如何保护 PDF 文件不被下载或复制
- r - 数据框中行中的类似字符串值
- java - FusedLocationClient 故障排除服务中断场景
- regex - Python 正则表达式负向后查找嵌入式数字