我有一个像这样的@ConfigurationProperties类:
const id = getId() // you've id from somewhere
const actions= state.getIn(['allRetrospectivesMap', id, 'current_stage', 'actions']); // Note: state is your immutable data.
我正在将它注册为bean,所以我可以在Spring调度程序的注释中引用它:
@ConfigurationProperties(prefix = "myprops", ignoreUnknownFields = false)
@Configuration
public class MyProperties {
private Long mySchedulerRate;
@Bean
public Long mySchedulerRate() {
return this.mySchedulerRate;
}
}
但是,我现在想编写一个单元测试,我希望能够为bean'mySchedulerRate'设置不同的值。对于@ConfigurationProperties类的模拟/间谍似乎无法工作,因为在将存根设置为返回我想要的值之前调度程序已设置好。
实现我想做的最简单的方法是什么?
答案 0 :(得分:2)
现在管理解决这个问题。我正在运行@SpringBootTest,我意识到你可以在特定测试类的注释中覆盖属性。
这对我有用:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MyApp.class, properties = "myprops.my-scheduler-rate=1000")
public class MyTest {
所以不需要尝试覆盖bean,我太过于复杂了。