1
我有一個角2項目,因緣和茉莉花以下測試:Angular 2 Testing:什麼是異步測試的正確方法?
let a: any;
beforeEach(() => {
a = {};
setTimeout(() => {
a.test();
}, 1000);
});
it('should work with async and promise', async(() => {
return new Promise((resolve) => {
a.test =() => {
console.log('erster test');
assertThat(true, is(false));
resolve();
};
});
}));
it('should work with async and done', async((done) => {
a.test =() => {
console.log('zweiter test');
assertThat(true, is(false));
done();
};
}));
it('should work with done', (done) => {
a.test =() => {
console.log('dritter test');
assertThat(true, is(false));
done();
};
});
唯一可行的情況下(意味着失敗)是最後一個只是一個「完成」的回調。第二個我不確定,但不應該第一個是在角度2測試異步的正確方法?我認爲用「異步」你在你的函數週圍放置一個區域,它正在等待返回的承諾?我試圖理解異步實現,但我沒有得到它:https://github.com/angular/angular/blob/master/modules/%40angular/core/testing/async.ts
謝謝,也許我的例子不是那麼好。 「a」實際上是對視頻標籤的引用,「test()」是它的「播放」功能。所以我想我不能在區域中移動onplay的調用,因爲它被視頻本身解僱了嗎?我必須在這裏採取「完成」,還是有異步/區域的解決方案? – user2170547
我不知道。我沒有任何測試視頻的經驗,我也不完全確定你的意思。如果您發佈一個真實的例子,也許我可以用它玩:-) –
對不起,我試圖創建一個plunker,但不能讓它運行。但你的提示也需要在該區域幫助我瞭解它。最後我只使用了它,它的工作原理。 – user2170547