Я использую moment.js для даты/времени в своем приложении, но похоже, что он не играет хорошо с издевательскими возможностями Jasmine. Я собрал тестовый набор ниже, который показывает мою проблему:
jasmine.clock().mockDate
, похоже, не работает в течение минуты, в то время как он отлично работает для Date
.
describe('Jasmine tests', function () {
beforeEach(function() {
jasmine.clock().install();
});
afterEach(function() {
jasmine.clock().uninstall();
});
// Pass
it('uses the mocked time with Date', function() {
var today = new Date('2015-10-19');
jasmine.clock().mockDate(today);
expect(new Date().valueOf()).toEqual(today.valueOf());
});
// Fail
it('uses the mocked time with moment', function() {
var today = moment('2015-10-19');
jasmine.clock().mockDate(today);
expect(moment().valueOf()).toEqual(today.valueOf());
});
});
Почему Date
работает как ожидалось, а moment
не работает? Не moment
использует Date
под капотом?
Каков правильный способ фальсификации moment
с помощью Jasmine?