通常の $q promise を返すサービスをテストしようとしたときに、奇妙なことに遭遇しました。私がテストで試した約束は、実際に解決/拒否されたことはありません (より具体的には、からのハンドラーthenは呼び出されず、約束内のコードは問題なく実行されます)。SOに関する他の回答が示唆しているように、ルートスコープでダイジェストを強制しようとしましたが、運がありませんでした。
以下は自己完結型の小さな例です。
describe('promise', function(){
jasmine.DEFAULT_TIMEOUT_INTERVAL = 500;
let q;
beforeEach(inject(function($q){
q = $q;
}));
it('finishes', function(done){
expect(q).toBeDefined();
const promise = q.resolve();
console.log(promise);
promise.then(
() => done(),
() => done.fail()
);
});
});
promise を期待どおりに機能させるにはどうすればよいですか?