Rim*_*ian 26 javascript mocking jasmine
我正在测试一个将日期作为可选参数的函数.我想声明如果在没有参数的情况下调用函数,则会创建一个新的Date对象.
var foo = function (date) {
var d = date || new Date();
return d.toISOString();
}
Run Code Online (Sandbox Code Playgroud)
我如何断言new Date被称为?
到目前为止,我有这样的事情:
it('formats today like ISO-8601', function () {
spyOn(Date, 'prototype');
expect().toHaveBeenCalled();
});
Run Code Online (Sandbox Code Playgroud)
Ana*_*mer 58
来自茉莉花的例子,
jasmine.clock().install();
var baseTime = new Date(2013, 9, 23);
jasmine.clock().mockDate(baseTime);
jasmine.clock().tick(50)
expect(new Date().getTime()).toEqual(baseTime.getTime() + 50);
afterEach(function () {
jasmine.clock().uninstall();
});
Run Code Online (Sandbox Code Playgroud)
小智 13
归功于@HMR.测试我写的验证:
it('Should spy on Date', function() {
var oldDate = Date;
spyOn(window, 'Date').andCallFake(function() {
return new oldDate();
});
var d = new Date().toISOString;
expect(window.Date).toHaveBeenCalled();
});
Run Code Online (Sandbox Code Playgroud)
对我来说它适用于:
spyOn(Date, 'now').and.callFake(function() {
return _currdate;
});
Run Code Online (Sandbox Code Playgroud)
而不是.andCallFake(使用"grunt-contrib-jasmine":"^ 0.6.5",这似乎包括jasmine 2.0.0)
小智 6
对我来说,它只需要使用mockDate()而不使用其他任何东西就可以工作:
jasmine.clock().mockDate(new Date('2000-01-01T01:01:01'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22425 次 |
| 最近记录: |