我用spyBean做了一个SpringBootTest:
@SpyBean
private MyProperties myProperties;
我想在myProperties中使用不同的值来测试组件的行为。但是,我注意到,当我在一个测试中更改myProperties的值时,下一个测试将获得上一个测试中设置的值,当我尝试重置该值时:
@BeforeEach
void setUp() {
myProperties = new MyProperties();
}
单个测试中的后续变更没有影响。
1条答案
按热度按时间5kgi1eie1#
@MockBean
或@SpyBean
对spring上下文创建示例进行模拟/监视,并且在运行多个集成测试时缓存spring上下文修复此问题一种方法是在下一个测试中添加@DirtiesContext
,但不建议这样做,因为这会降低测试速度其他解决方案可以是在下一个测试中使用ReflectionTestUtils
注入myProperties
,如下所示