0

我正在尝试为此方法编写茉莉花测试

currentTime: ->
  Math.round(new Date().getTime()/1000)

在尝试这个的测试中:

@date = new Date()
@date = Date(@date.getTime() + 70)
spyOn(window, "Date").andCallFake ->
  @date
expect(@user.currentTime()).toEqual xxx

我试过@date = new Date(@date.getTime() + 70)了,但我没有帮助。

但我得到了错误:

Uncaught TypeError: Object [object Object] has no method 'getTime'

知道如何解决吗?谢谢

4

2 回答 2

1

您必须模拟 Date 构造函数,以便他返回一个getTime总是返回相同 int 的模拟:

spyOn(window, "Date").andReturn {getTime: -> 1000}
于 2013-07-10T15:45:20.567 回答
0

解决方案取自这里

@_Date = Date
testContext = @
time = new Date().getTime() + 400
spyOn(window, "Date").andCallFake ->
  new testContext._Date(time)
于 2013-07-10T15:24:38.377 回答