如何阻止jUnit将我的PC上的时区数据拉入测试?

时间:2017-09-11 14:44:22

标签: java junit

我有一系列测试,目前正在西海岸工作的项目失败。我在中央时间,测试是用PDT中的日期和时间进行硬编码的。它适用于处于不同时区的团队,因此我不能只对CDT进行硬编码。我有什么选择让jUnit停止从我的系统中拉出时区?

1 个答案:

答案 0 :(得分:2)

您需要重构代码。我假设你已经在代码中的某处硬编码了ZonedDateTime.now()或类似的东西。说

public void method() {
    method1(ZonedDateTime.now());
}

因此,无法控制传递自己的值,注入它。应该成为:

public void method(ZonedDateTime zdt) {
    method1(zdt);
}

现在代码变得可测试,您可以传递任何所需的值,例如,您可以使用所需的任何时区解析字符串作为分区日期时间。