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 名の両方を指定し、元の関数内でArguments.callee.caller.nameを使用して、関数がそれ自体または Jasmine によって呼び出されているかどうかを判断することを考えました。残念ながら、arguments.callee.caller.nameは常に undefined を返します。これは、Angular と Jasmine が相互にリンクされていることが原因であると思われます。