Шпионаж на свидании конструктора с Синон
У меня есть метод, который устанавливает дату истечения срока действия токена:
var jwt = require('jwt-simple');
module.exports = {
setExpirationDate: function(numDays) {
var dateObj = new Date();
console.log(dateObj);
}
}
Я хочу написать утверждение о" новой дате":
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: ожидалось, что шпион был вызван по крайней мере один раз, но это никогда не назывался
Есть ли какие-то вещи, касающиеся шпионов-конструкторов, которые должны быть затронуты?
1 ответ:
Учитывая, что ваш конструктор привязан к "глобальному", что означает, что если вы открываете консоль разработчика в вашем браузере, вы должны иметь возможность интантировать объект, используя соответствующую функцию / конструктор как таковой:
var Date = new Date();
Если это так, то фактический рабочий код может быть:
var Date = sinon.spy(global, 'Date'); expect(Date.called).to.be.equal(true);