大佬教程收集整理的这篇文章主要介绍了angularjs – Angular JS – 使用Karma / Jasmine测试页面重定向功能,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
$scope.MyFunction = function(){ $scope.myVariable = "something"; $scope.myOtherVariable = "something else"; window.LOCATIOn.href = "/path/to/page"; }
describe('my test',function(){ it('should pass',function(){ scope.MyFunction(); expect(scope.myVariablE).toBe('something'); expect(scope.myOtherVariablE).toBe('something else'); }); });
上面的测试本身通过,但随后Karma在控制台中抛出以下错误:
我想在Jasmine测试中给出匿名函数和Angular名称,然后在原始函数中使用arguements.callee.caller.name来确定函数是自己调用还是Jasmine调用.不幸的是,arguments.callee.caller.name总是返回undefined,我怀疑它是由Angular和Jasmine相互链接的方式引起的.
通过更改原始函数以使用Angular的$window服务而不是浏览器窗口对象,可以编写不需要修改生产代码或考虑任何运行时参数的测试.这当然要求$window是找到函数的控制器的依赖项.
使用angular-mocks/ngMock,类似于:
var fakeWindow = { LOCATIOn: { href: '' } } // instantiate controller with mock window beforeEach(inject(function($controller) { $controller('YourCtrlName',{ $window: fakeWindow }); }));
应该允许测试通过,假设控制器不需要$window其他任何东西.
以上是大佬教程为你收集整理的angularjs – Angular JS – 使用Karma / Jasmine测试页面重定向功能全部内容,希望文章能够帮你解决angularjs – Angular JS – 使用Karma / Jasmine测试页面重定向功能所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。