0

通常の $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 を期待どおりに機能させるにはどうすればよいですか?

4

2 に答える 2