Spring Mock MVC测试的时区

时间:2015-10-19 16:36:15

标签: spring spring-mvc spring-boot

如何设置SpringMock MVC测试的时区? 我们的Spring Boot应用程序都在运行

TimeZone.setDefault(TimeZone.getTimeZone("UTC"));

在应用程序启动时设置。但我发现无法为MockMvcRequestBuilders设置此项。手动设置(在测试或BeforeClass中)没有改变任何东西=仍然使用机器时区...

1 个答案:

答案 0 :(得分:5)

您可以使用@Configuration类来完成。如果使用@SpringBootTest注释测试,因为Spring在执行测试之前加载上下文,您将正确配置默认时区。

我刚刚在我的一个项目中插入了这个类,我所有的@SpringBootTest注释测试都开始尊重UTC时区。您可以替换以使用您想要的时区。

@Configuration
public class TimeZoneConfig {

    private static final Logger LOGGER = LoggerFactory.getLogger(TimeZoneConfig.class);

    @Bean
    public TimeZone timeZone(){
        TimeZone defaultTimeZone = TimeZone.getTimeZone("UTC");
        TimeZone.setDefault(defaultTimeZone);
        LOGGER.info("Spring boot application running in UTC timezone :"+new Date());
        return defaultTimeZone;
    }

}