如何测试 Date.getTime() 的类型



我有以下代码:

let date1 = new Date("January 13, 2018 11:00:00");
console.log(date1.getTime());
console.log(typeof date1.getTime() === Number);
console.log(typeof date1.getTime());
console.log(typeof date1.getTime() === number);

哪些打印:

1515841200000
false
number
ReferenceError: number is not defined
    at eval:31:40
    at eval
    at new Promise

所以看起来typeof date1.getTime()number.但是,当我用number测试相等性时,我得到一个错误,当我用Number测试相等时,我得到false

我想测试该类型的原因是我有一个 Jest 测试,我正在检查变量是否是Number

expect.any(Number)

但是,测试从 date1.getTime() 之类的语句中获取变量,并且测试失败而不是通过。

那么,我怎样才能测试类型,以使date1.getTime()不会使测试失败呢?

console.log(typeof date1.getTime() === 'number') typeof运算符返回一个字符串。

请参考 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof

您可以在断言中使用它:expect(typeof date1.getTime()).toBe('number')

您可以使用:

expect(date1.getDate()).toEqual(expect.any(Number));

最新更新