当前位置: 首页 > 面试题库 >

Java 8的java.time API中的模拟时间

徐俊人
2023-03-14
问题内容

Joda
Time有一个不错的DateTimeUtils.setCurrentMillisFixed()来模拟时间。

在测试中非常实用。

Java 8的java.time
API
是否具有等效功能?


问题答案:

最接近的东西是Clock物体。您可以使用任意时间(或从系统当前时间)创建Clock对象。所有date.time对象都有重载的now方法,这些方法采用时钟对象代替当前时间。因此,您可以使用依赖项注入来注入具有特定时间的Clock:

public class MyBean {
    private Clock clock;  // dependency inject
    ...
    public void process(LocalDate eventDate) {
      if (eventDate.isBefore(LocalDate.now(clock)) {
        ...
      }
    }
  }

有关更多详细信息,请参见Clock
JavaDoc



 类似资料:
  • 问题内容: 我是Junit的新手,下面是我正在运行的junit代码。 这是我的API在ReportUtil中删除的HashedSettings 下面是我必须模拟的CollectionUtil中的createHashMap的代码。 这是我在运行junit测试用例时遇到的错误。 我正在使用嘲笑-all-1.10.19.jar,powermock-api-mockito-1.6.6.jar,powerm

  • 问题内容: 我在Python中使用时遇到了一些困难: 测试实际上返回正确的值,但它是Mock对象,不是。您如何在Python库中模拟属性? 问题答案: 您需要使用和: 这意味着:调用时,在该调用的返回值上,为属性设置a以返回value 。

  • 问题内容: 我该如何与正在测试的班级中的Mockito其他班级进行模拟? 例如: MyClass.java 任何东西PerformerClass.java 并测试: 我是否可以欺骗以排除不必要的逻辑?我可以重写方法来简单地返回还是? 为什么指定Mockito,因为在Robolectric进行Android测试时需要它。 问题答案: 您可以重构,以便它使用依赖注入。不用让它创建实例,您可以将类的实例

  • 我在LabVIEW中有一个控制和仿真循环结构,它向Multisim模型发送输入并从Multisim模型接收输出。我想测量Multisim模型的两个布尔输出变为true时的仿真时间差。我可以添加一个Control&Simulation->Simulation->Utilities->Simulation Time小部件,并将其连接到前面板上的一个指示器上,并在运行它时看到仿真时间的进展,但我无法找到

  • 所以我想做一些事情 但我得到了空异常