如何设置ZonedDateTime对象在Scala中测试时返回固定时间值?

时间:2017-05-12 10:31:37

标签: scala unit-testing scalatest

我正在使用Scala WordSpec编写单元测试用例。在测试返回当前时间的方法时,我想返回一个固定的时间。

我想在我的代码中模拟ZonedDateTime.now().getHour方法以返回固定值以进行测试。

我尝试了下面的代码,但它没有给出任何结果

 val mockZone = mock[ZonedDateTime]
    (mockZone.now("IN":"Asia/Kolkata").getHour)
      .expects()
      .returns(2)

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作来获取time

new SimpleDateFormat("HH:mm:ss").format(java.util.Date.from(ZonedDateTime.now(ZoneId.of("Asia/Kolkata")).toInstant))

然后获取date

new SimpleDateFormat("yyyy-MM-dd").format(java.util.Date.from(ZonedDateTime.now(ZoneId.of("Asia/Kolkata")).toInstant))

希望有所帮助