我面对的是一个带有测试执行侦听器的issue,该侦听器是通过/META-INF/spring.factories中的一个条目由依赖项注册的。
我仍然喜欢使用这种依赖关系--它有很多好处。
有没有办法以某种方式抑制对有问题的(在我的设置中)侦听器的调用?
添加自己的/META-INF/spring.factories条目似乎不会覆盖,而是扩展了活动监听器的列表。
有问题的监听器是来自spring-boot-test:2.5.6的org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener。
发布于 2021-11-15 21:24:46
特别是对于org.springframework.test.context.TestExecutionListener,可以通过实现DefaultTestExecutionListenersPostProcessor并将其本身注册为META-INF/spring.factories中的org.springframework.boot.test.context.DefaultTestExecutionListenersPostProcessor来过滤掉不需要的侦听器
public class SuppressMockitoResetMocksTestExecutionListener implements DefaultTestExecutionListenersPostProcessor {
@Override
public Set<Class<? extends TestExecutionListener>> postProcessDefaultTestExecutionListeners(Set<Class<? extends TestExecutionListener>> listeners) {
return listeners.stream()
.filter((listener) -> listener != org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.class)
.collect(Collectors.toSet());
}
}https://github.com/mgurov/mockk-v-cached/commit/aea61ccd3afcf13a62736ce33391f0673640d446上的Kotlin示例
通过https://github.com/spring-projects/spring-boot/issues/28604#issuecomment-968657072
https://stackoverflow.com/questions/69933720
复制相似问题