每次钩子错误之前都会出现 Angular karma phantom
2015-12-16
1847
我正在使用 karma 和 phantom 运行测试,我正在使用 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
什么原因导致此问题?
2个回答
根据我的经验,使用 Karma 和/或 PhantomJS 进行 DOM 调用可能会有问题。PhantomJS 中的 DOM 并不完全像标准浏览器那样运行,因此,它在 GUI 操作中往往会出错。
我的建议(尽管它可能不是最好的)是监视或模拟您正在使用的
document
之外的文档方法,因为它们的作用不由您掌控。
gonzofish
2016-04-25
问题从 karma 输出中就很明显了,不是吗?
'document.querySelector('.arrow' + index).classList'
无法通过选择器找到元素,因此未定义的
classList
为空。您需要调查一下。
Stepan Suvorov
2016-04-23