8

カルマとファントムでテストを実行しています。モカとシノンを使用していますが、テストに合格することもあれば、何らかの理由でこのエラーが発生することもあります。

    ✖ "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

この問題の原因は何ですか?

4

2 に答える 2

3

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

私のアドバイス (最善ではないかもしれませんが) は、使用しているドキュメント メソッドをスパイまたはモック アウトすることですdocument

于 2016-04-25T17:39:29.737 に答える
0

問題はカルマ出力から明らかに強調されていますね?

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

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

于 2016-04-23T13:15:57.653 に答える