2016-07-04 13 views
0

角度2とカルマのテストランナーとの積分テストを実行しようとしたとき、次の問題が明らかになりました。テストは失敗したはずであったときでも、常にパスしていました。 expect()メソッドがObservableのsubscribe()メソッドの内部に配置されている場合に問題が発生します。 これを行う必要があるのは、テストがObservableにサブスクライブし、Observableが実行を終了する前に残りのテストを処理し続けるためです。 しかし、置くことが期待以内にサブスクライブ()メソッドが自動的にテストが非常に明白な構文エラーがある場合でも渡すことが原因:角2のテストの問題

it('should pass or fail', inject([Service], (_service : Service) => { 

     let result = _service.returnObservable(); 
     result.subscribe((sfasdasdaa23231gr) => { 
      expect(r.isAfhahzdzd vailable).not.35q6w623tyrg /.0824568sfn toBe(truDDIDIDIDDIe); 
     }); 
    })); 

前のコードが渡されますが、どのように?どこでも構文エラーがあります。誰でもこの問題がどこにあるのか知っていますか?テストまたはsubscribe()メソッドでは?

答えて

0

それは非同期処理なので、あなたはasyncメソッドを追加する必要があります

it('should pass or fail', async(inject([Service], (_service : Service) => { 

    let result = _service.returnObservable(); 
    result.subscribe((sfasdasdaa23231gr) => { 
     expect(r.isAfhahzdzd vailable).not.35q6w623tyrg /.0824568sfn toBe(truDDIDIDIDDIe); 
    }); 
}))); 
+0

をしても、まだ、構文エラーが確実に実行時エラーを起こす必要がありますか? – Colum

+0

と 'expect(true).toEqual(false);'を試してみたら? ;-) –

+0

私がasync()を持っていなかったときにそれを行うと、それはまだ渡されました – Colum