13
Voglio verificare che i vari campi data siano stati aggiornati correttamente, ma non voglio scherzare con la predizione quando è stato chiamato new Date()
. Come faccio a spegnere il costruttore Date?Come posso stubare nuovo Date() usando sinon?
import sinon = require('sinon');
import should = require('should');
describe('tests',() => {
var sandbox;
var now = new Date();
beforeEach(() => {
sandbox = sinon.sandbox.create();
});
afterEach(() => {
sandbox.restore();
});
var now = new Date();
it('sets create_date', done => {
sandbox.stub(Date).returns(now); // does not work
Widget.create((err, widget) => {
should.not.exist(err);
should.exist(widget);
widget.create_date.should.eql(now);
done();
});
});
});
Nel caso in cui sia pertinente, questi test sono in esecuzione in un'app nodo e usiamo TypeScript.
Impressionante, sembra che faccia ciò di cui avevo bisogno. Una volta ottenuta una versione funzionante, la modifico nella tua risposta e la accetto. – MrHen