【发布时间】:2019-10-31 10:14:27
【问题描述】:
我有一个这样的spring boot配置类:
@Configuration
public class ClockConfiguration {
@Bean
public Clock getSystemClock() {
return Clock.systemUTC();
}
}
我有一些这样的集成测试:
@SpringBootTest(classes = MyApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT)
public abstract class AbstractIntegrationTest {
}
和这样的测试:
public class MiscTests extends AbstractIntegrationTest{
@Test
public void CreateSomethingThatOnlyWorksInThe Morning_ExpectCorrectResponse() {
}
我希望能够偏移时钟 bean 以在一天的不同时间运行一些测试。我该怎么做?
注意:我看到 several stack overflow answers 与此类似,但我无法让它们工作。
根据其他回复,解决方案似乎应该是这样的:
@SpringBootTest(classes = MyApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT)
public abstract class AbstractIntegrationTest {
@Configuration
class MyTestConfiguration {
@Bean
public Clock getSystemClock() {
Clock realClock = Clock.systemDefaultZone();
return Clock.offset(realClock, Duration.ofHours(9));
}
}
}
但是那里什么也没有发生。我需要@Import 吗?我需要@Autowired 吗?
谢谢!
【问题讨论】:
标签: java spring-boot integration-testing