SpringBoot更改测试范围

时间:2017-06-12 09:25:18

标签: spring spring-boot

启动测试环境时,是否可以在不使用@Scope的情况下更改组件的范围?

@Service
@Scope(${service.scope})
public class MyService{}

test.properties

service.scope=prototype

prod.properties

service.scope=

我们不希望使用@Scope对服务进行规范,我们只在测试时才需要它。 有没有更好的方法来改变测试中bean的范围?我们没有spring-cloud,所以我们不能使用RefreshScope刷新范围。

1 个答案:

答案 0 :(得分:0)

可悲的是,我认为我的解决方案是唯一的"酷"一个用于改变测试环境范围的特定问题。

谢天谢地@DirtiesContext(感谢Darren :))为我的问题做了诀窍,我改变了每个测试的范围。在顺序模式下执行持续时间稍长,但并行执行正常。

@Service
@DirtiesContext(classMode=ClassMode.AFTER_EACH_TEST_METHOD)
public class MyService{}