0
我有一個不尋常的問題,我還沒有找到任何解決方案,我一直在嘗試相當一段時間。我創建了一個名爲delay的函數,它基本上創建了一個新的Promise,它在給定的時間量後自行解決。這個功能的目的是能夠延遲一系列承諾。它看起來有點像這樣:在Karma測試異步延遲功能
const delay = ms => new Promise((resolve, reject) => {
setTimeout(resolve, ms);
});
let test = '';
const func =() => {
delay(1000).then(() => {
test = 'kek';
});
};
describe('unit tests',() => {
it('test function func',() => {
// Act
func();
// Assert
expect(test).toEqual('kek');
});
});
問題是測試,我已經在這個例子中提供,因爲它只有在1000毫秒延時,變量測試設置爲KEK將失敗的單元測試。
我已經嘗試了通常的解決方案,比如在單元測試中有一個setTimeout,並且在聲明之前用jasmine.clock()。tick(1001)嘗試過,但是我無法讓它工作。
任何想法?