我有一系列测试,目前正在西海岸工作的项目失败。我在中央时间,测试是用PDT中的日期和时间进行硬编码的。它适用于处于不同时区的团队,因此我不能只对CDT进行硬编码。我有什么选择让jUnit停止从我的系统中拉出时区?
答案 0 :(得分:2)
您需要重构代码。我假设你已经在代码中的某处硬编码了ZonedDateTime.now()或类似的东西。说
public void method() {
method1(ZonedDateTime.now());
}
因此,无法控制传递自己的值,注入它。应该成为:
public void method(ZonedDateTime zdt) {
method1(zdt);
}
现在代码变得可测试,您可以传递任何所需的值,例如,您可以使用所需的任何时区解析字符串作为分区日期时间。