我无法将setTimeout中的期望值设置为相等。 我有两个有价值的是: const first = 0; const second = 0;
但是抛出错误是Uncauth TypeError:您在期望流的位置提供了“ undefined”。您可以提供Observable,Promise,Array或Interable。
setNumber() {
setTimeout(() => {
first = 12;
second = 1235
}, 250);
it('Should execute setNumber', fakeAsync(() => {`
setTimeout(() => {
expected(first).toEqual(12);
expected(second ).toEqual(1235);
}, 251)
}))
答案 0 :(得分:0)
在fakeAsync函数中,使用tick()来模拟超时。就像这样:
it('Should execute setNumber', fakeAsync(() => {
let first;
let second;
setTimeout(() => {
first = 12;
second = 1235;
}, 250);
tick(251);
expect(first).toEqual(12);
expect(second).toEqual(1235);
}));
为便于理解,请勾选249,然后测试将失败。
it('Should execute setNumber', fakeAsync(() => {
let first;
let second;
setTimeout(() => {
first = 12;
second = 1235;
}, 250);
tick(249);
expect(first).toEqual(12);
expect(second).toEqual(1235);
}));
希望我能帮助您:)