启动测试环境时,是否可以在不使用@Scope的情况下更改组件的范围?
@Service
@Scope(${service.scope})
public class MyService{}
test.properties
service.scope=prototype
prod.properties
service.scope=
我们不希望使用@Scope对服务进行规范,我们只在测试时才需要它。 有没有更好的方法来改变测试中bean的范围?我们没有spring-cloud,所以我们不能使用RefreshScope刷新范围。
答案 0 :(得分:0)
可悲的是,我认为我的解决方案是唯一的"酷"一个用于改变测试环境范围的特定问题。
谢天谢地@DirtiesContext(感谢Darren :))为我的问题做了诀窍,我改变了每个测试的范围。在顺序模式下执行持续时间稍长,但并行执行正常。
@Service
@DirtiesContext(classMode=ClassMode.AFTER_EACH_TEST_METHOD)
public class MyService{}