我对之前在西海岸进行的一个项目进行了一系列测试,目前这些测试都失败了。我现在处于中部时间,测试是用 PDT 中的日期和时间硬编码的。它适用于位于不同时区的团队,因此我不能只对 CDT 进行硬编码。我有哪些选项可以让 jUnit 停止从系统中提取我的时区?
最佳答案
您需要重构代码。我假设您在代码中的某处硬编码了 ZonedDateTime.now() 或类似的内容。说
public void method() {
method1(ZonedDateTime.now());
}
所以,不可能控制传递你自己的值,注入(inject)它。应该变成:
public void method(ZonedDateTime zdt) {
method1(zdt);
}
现在代码变得可测试,您可以传递任何您想要的值,例如您可以使用您需要的任何时区作为分区日期时间来解析字符串。
关于java - 如何阻止 jUnit 将时区数据从我的 PC 提取到测试中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46158463/