Sir*_*ris 39 unit-testing jasmine angularjs karma-jasmine
我遇到了一个问题,当我在Jasmine上运行测试时,我在下面收到此错误.问题是,当我尝试执行一定数量的测试时,似乎会发生这种情况.它似乎与特定的测试无关,就好像我注释掉了一些,测试通过了.如果我取消注释某些测试,则会出现错误.如果我注释掉之前没有注释的那些,它们都会再次通过.(即如果我有红色,绿色,蓝色和橙色测试但它失败了,我会将橙色和蓝色评论通过,然后我取消注释蓝色和橙色它再次失败,但如果我注释掉红色和绿色它再次通过).
Chrome 41.0.2272(Mac OS X 10.10.1)错误您的一些测试执行了整页重新加载!Chrome 41.0.2272(Mac OS X 10.10.1):执行16 of 29(1失败)错误(0.108秒/0.092秒)
我对发生的事感到难过.我添加的测试越多,这就成了问题.有没有人遇到过这个?我不知道是什么导致它,因为我的任何测试都没有做任何类型的重定向,并且它们都普遍通过另一台人机.
jpu*_*k11 24
在我的情况下,问题是在我的源代码中我有代码直接在位置对象上设置href,如window.location.href ='somewhere';
在我的规范中,我设置了一个onbeforeunload监听器,它只返回一个字符串,而不是允许重定向发生:
beforeAll(() => {
window.onbeforeunload = () => 'Oh no!';
});
Run Code Online (Sandbox Code Playgroud)
joh*_*ase 18
确保您的测试使用模拟/间谍正确隔离所有测试模块.您所看到的行为告诉我,您的测试并非真正独立运行 - 它们正在改变一些会触发重新加载的状态.
我想你正在使用window.location
目标代码中的某个地方.为了通过它只是为了创造一个间谍window.onbeforeunload
例:
window.onbeforeunload = jasmine.createSpy();
Run Code Online (Sandbox Code Playgroud)
或者甚至更好地使用$window
,这不会发生.
归档时间: |
|
查看次数: |
16635 次 |
最近记录: |