我正在尝试模拟将用于所有单元测试用例的日期对象。我有很多关于javascript的参考,但由于类型错误,这在打字稿中不起作用。任何人都可以提供解决此问题的解决方案吗?
// sampleMethod() Test Suite
describe('sample Method', () => {
it('should match two objects', () => {
// Preparing
const sampleRequest: sampleRequestType = {
key: '0',
status: 'success',
creation_time: new Date(),
attempts: 0,
last_attempt_time: new Date()
};
// Executing
const result = sampleobject.sampleMethod();
// Verifying
expect(result).toEqual(sampleRequest); // assume result also return the same value as sampleRequest
});
});
由于 Jest 是在茉莉花之上开发的,您可以使用这个
const mockDate = new Date(1434319925275);
spyOn(window, 'Date').and.callFake(() => {
return mockDate;
});
@hari您可以重构sampleMethod
并删除对 Date 对象的硬依赖关系。
与其直接实例化 Date 对象(new Date)
在方法内部,不如更改方法并接收 date 对象作为参数。
这样,你可以很容易地模拟日期依赖关系。