我正在使用业力和幻影运行我的测试,我正在使用mocha和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
导致这个问题的原因是什么?
答案 0 :(得分:3)
根据我的经验,使用Karma和/或PhantomJS的DOM调用可能是个问题。 PhantomJS中的DOM并不像标准浏览器那样运行,因此,它在GUI操作上往往会出错。
我的建议(虽然它可能不是最好的)是监视或嘲笑你使用document
之外的文档方法,因为他们所做的事情无论如何都不在你手中。
答案 1 :(得分:0)
从业力输出中明确突出问题,不是吗?
'document.querySelector('.arrow' + index).classList'
它无法在元素上找到选择器,因此undefined的classList
为null。你需要研究它。