我正在开发一个angularjs项目,如果用户在元素上滚动,该元素会调用scrollTop()来确定是否应该调用另一个方法。
我写了这个sinon.stub
scrollTopStub = sinon.stub($。fn,“scrollTop”)。returns(50);
这是验证
期望($ fn.scrollTop.calledOnce).to.be.true;
当我使用karma,mocha和chrome运行测试时,测试通过。
然而,当我无头地运行测试时,从未调用过sinon存根。
有什么想法吗?
答案 0 :(得分:1)
我知道这是一个老问题。但如果有人碰到这一点:这可能是一个完全不同的问题。我遇到一个similiar one曾经几乎被疯狂和误导性错误驱使疯狂与phantomjs一起运行(我假设这是无头浏览器) - 最后我发现 Phantomjs不支持bind(和其他一些es5方法因此使用它们的代码会失败。只需将es5 shim添加到测试index.html(或karma.conf或..)文件就可以解决问题了。因为我在另一个中使用了sinon.js和phantomjs项目我知道这可以正常工作