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

时间:2018-01-21 12:24:09

标签: javascript jestjs

我有以下代码:

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()不会使测试失败?

2 个答案:

答案 0 :(得分:0)

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')

答案 1 :(得分:0)

您可以使用:

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