2015-12-16 6 views
8

前に、私は私はモカとsinonを使用していますが、時々テストは、私はこのエラーが出る理由もなく、時には渡すと、カルマとファントムとの私のテストを実行しています:角度カルマファントム各フックエラー

✖ "before each" hook: workFn 
     ✔ should call get user api 
    ✖ "after each" hook for "should call get user api" 

Finished in 1.04 secs/0.2 secs 

SUMMARY: 
✔ 42 tests completed 
✖ 3 tests failed 

FAILED TESTS: 
    UserService 
    ✖ "before each" hook: workFn 
     PhantomJS 1.9.8 (Mac OS X 0.0.0) 
    TypeError: 'null' is not an object (evaluating 'document.querySelector('.arrow' + index).classList') (public/client/build/main.js:3195) 

    ✖ "after each" hook for "should call get user api" 
    PhantomJS 1.9.8 (Mac OS X 0.0.0) 
    PhantomJS 1.9.8 (Mac OS X 0.0.0) 
    TypeError: 'null' is not an object (evaluating 'currentSpec.$injector') 
     at public/vendor/angular-mocks/angular-mocks.js:2229 

は何ができますこの問題を引き起こしますか?

+3

モックを定義していませんか?コードを見なくても何が間違っているのかを知ることは難しいです... – Icepickle

+0

問題は、私がカルマをリセットしたときです。時には失敗する原因がわかりません。 – user233232

+0

PhantomJS 2.0.0と同じバグがありました。これはangularMock関連のバグのようですが、1.4.Xにダウングレードすると問題が解決するようです。 –

答えて

0

問題はカルマの出力からはっきりと強調されています、いいえ?

'document.querySelector('.arrow' + index).classList'

はセレクタで要素上に見つけることができなかったので、未定義のclassListはヌルです。あなたはそれを調べる必要があります。

+1

問題は、PhantomJSを使用している場合にのみ、テストが断続的に行われることです。 –

3

私の経験では、KarmaやPhantomJSを使用したDOM呼び出しが問題になる可能性があります。 PhantomJSのDOMは、標準のブラウザとまったく同じように動作しないため、GUI操作で多くのエラーが発生する傾向があります。

あなたのアドバイスは、documentのオフを使用しているドキュメントメソッドを盗んだり、模倣したりすることです。