@@ SpyBean,集成测试很少,无法正常工作

问题描述 投票:1回答:1

我在集成测试中@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)。谁知道为什么会这样?

spring spring-boot mockito spring-test spring-boot-test
1个回答
0
投票

在这种情况下,每个@DirtiesContext方法的[@Test都对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.