用sinon监视Date构造函数
Spying on Date constructor with sinon
我有一个方法可以设置令牌的过期日期:
var jwt = require('jwt-simple');
module.exports = {
setExpirationDate: function(numDays) {
var dateObj = new Date();
console.log(dateObj);
}
}
我想写一个assert on "new Date"语句:
var jwtHelper = require('../../../helpers/jwtToken');
describe('setExpirationDate method', function() {
it('should create date object', function() {
var Date = sinon.spy(Date);
jwtHelper.setExpirationDate(global.TOKEN_EXPIRE_DAYS);
expect(Date).to.be.called;
});
});
测试失败:
AssertionError:预期的间谍已经被调用了至少一次,但它从未调用
是否有一些关于构造函数间谍应该关注的事情?
考虑到你的构造函数被绑定为'global',这意味着如果你在浏览器上打开开发者控制台,你应该能够通过使用相关的函数/构造函数来实例化一个对象:
var Date = new Date();
如果是这样,实际的工作代码可以是:
var Date = sinon.spy(global, 'Date');
expect(Date.called).to.be.equal(true);
相关文章:
- ES6构造函数返回基类的实例
- 使用Google Visualization动态调用构造函数
- javascript中对象构造函数中的var属性与this.properties
- 理解typescript中的构造函数接口
- 如何模拟像 new Date() 这样的构造函数
- 将数组传递给Javascript Date构造函数,是标准的吗?
- Date 的构造函数如何重载一元 +
- 在 JavaScript 的 Date 构造函数中查找和使用用户的时区
- 如何使用参数(javascript)调用Date构造函数
- Javascript Date构造函数使用任意时间
- 重写Javascript Date构造函数
- Javascript Date和java.util.Date构造函数参数
- 如何模拟AngularJS中的构造函数(特别是Date()构造函数)
- 当像new(Date)这样编写时,如何将参数传递给构造函数
- 为什么JavaScript Date对象构造函数不能正确工作
- Javascript Date构造函数在IE和Chrome中的行为不同
- 用sinon监视Date构造函数
- d3.使用Date()对象的构造函数未解析
- 传递给date构造函数的Javascript日期字符串给出了奇怪的结果
- Javascript Date()构造函数没有'不起作用