【发布时间】:2014-03-13 20:35:34
【问题描述】:
我的 Angular 控制器中有一个函数,如下所示:
$scope.myFunction = function(){
$scope.myVariable = "something";
$scope.myOtherVariable = "something else";
window.location.href = "/path/to/page";
}
一个简单的 Jasmine 测试涵盖了上述功能,如下所示:
describe('my test', function(){
it('should pass', function(){
scope.myFunction();
expect(scope.myVariable).toBe('something');
expect(scope.myOtherVariable).toBe('something else');
});
});
上述测试本身通过,但随后 Karma 在控制台中抛出以下错误:
您的一些测试重新加载了整个页面!
页面重定向导致 Karma 发出此警告。解决此问题的最佳方法是什么?
我考虑过在 Jasmine 测试中同时给出匿名函数和 Angular 名称,然后在原始函数中使用 arguements.callee.caller.name 来确定该函数是被自己调用还是被 Jasmine 调用.不幸的是,arguments.callee.caller.name 总是返回 undefined,我怀疑这是由 Angular 和 Jasmine 相互链接的方式引起的。
【问题讨论】:
-
这个问题实际上并没有出现在我的代码中,但它确实给了我一个火花,点燃了我自己的修复,所以感谢发布它!如果您好奇,由于您的问题,我为自己解决的问题是stackoverflow.com/questions/31947852/…。谢谢,C§
标签: angularjs jasmine karma-runner karma-jasmine