您好,JavaScript专家!
我试图通过不同的方式创建一个示例,以演示异步代码测试:async,done,fakeAsync / tick,但都没有。我无法应付。
目标是了解异步,完成,fakeAsync / tick的工作方式,而它们都不是基于一项测试对另一项测试的影响而工作的。
要覆盖的某些服务代码:
public cnt: number = 0;
public testFunction() {
const timeout = setInterval(() => {
if (this.cnt++ === 15) {
clearInterval(timeout);
}
}, 1000);
}
单元测试的代码:
describe('testfunction', () => {
it('#testFunction done', (done) => {
console.info(service.cnt); // 0
service.testFunction();
const timeout = setTimeout(() => {
console.info(service.cnt);
done();
}, 5000);
});
it('#testFunction async', async(() => {
console.info(service.cnt); // 6?
service.testFunction();
const timeout = setTimeout(() => {
console.info(service.cnt);
}, 3000);
}));
it('#testFunction none', () => {
console.info(service.cnt); // 6?
service.testFunction();
const timeout = setTimeout(() => {
console.info(service.cnt);
}, 3000);
});
it('#testFunction fakeAsync', fakeAsync(() => {
// service.cnt = 0; // works ok with it
console.info(service.cnt);
service.testFunction();
tick(3000);
console.info(service.cnt);
tick(13000);
console.info(service.cnt);
}));
});
好吧,我放弃。我找不到有关此内容的任何全面信息,感谢您提供任何链接。