草庐IT

javascript - 在 Javascript 中模拟 window.location.href

我对一个使用window.location.href的函数进行了一些单元测试——不太理想,我宁愿将其传入,但在实现中是不可能的。我只是想知道是否可以在不实际导致我的测试运行程序页面实际转到URL的情况下模拟这个值。window.location.href="http://www.website.com?varName=foo";expect(actions.paramToVar(test_Data)).toEqual("bar");我将jasmine用于我的单元测试框架。 最佳答案 最好的方法是在某处创建一个辅助函数,然后模拟它:v

javascript - 在 Javascript 中模拟 window.location.href

我对一个使用window.location.href的函数进行了一些单元测试——不太理想,我宁愿将其传入,但在实现中是不可能的。我只是想知道是否可以在不实际导致我的测试运行程序页面实际转到URL的情况下模拟这个值。window.location.href="http://www.website.com?varName=foo";expect(actions.paramToVar(test_Data)).toEqual("bar");我将jasmine用于我的单元测试框架。 最佳答案 最好的方法是在某处创建一个辅助函数,然后模拟它:v

javascript - 让 requirejs 与 Jasmine 一起工作

首先我想说我是RequireJS的新手,甚至是Jasmine的新手。我在使用SpecRunner时遇到一些问题并且需要JS。我一直在关注UziKilon和BenNadel(以及其他一些人)的教程,他们帮助了一些人,但我仍然遇到一些问题。似乎,如果在测试中抛出错误(我可以特别想到一个,类型错误),规范运行器html将显示。这告诉我我在javascript中遇到了一些问题。但是,在我修复这些错误后,不再显示HTML。我根本无法显示测试运行程序。有人能发现我的代码有什么问题会导致这个问题吗?这是我的目录结构:Root|->lib|->jasmine|->lib(containsallofth

javascript - 让 requirejs 与 Jasmine 一起工作

首先我想说我是RequireJS的新手,甚至是Jasmine的新手。我在使用SpecRunner时遇到一些问题并且需要JS。我一直在关注UziKilon和BenNadel(以及其他一些人)的教程,他们帮助了一些人,但我仍然遇到一些问题。似乎,如果在测试中抛出错误(我可以特别想到一个,类型错误),规范运行器html将显示。这告诉我我在javascript中遇到了一些问题。但是,在我修复这些错误后,不再显示HTML。我根本无法显示测试运行程序。有人能发现我的代码有什么问题会导致这个问题吗?这是我的目录结构:Root|->lib|->jasmine|->lib(containsallofth

javascript - 我们如何在 Jasmine 中以编程方式清除 spy ?

我们如何以编程方式清除Jasmine测试套件中的spy?谢谢。beforeEach(function(){spyOn($,"ajax").andCallFake(function(params){})})it("shoulddosomething",function(){//Iwanttooverridethespyonajaxhereanddoitalittledifferently}) 最佳答案 将isSpy设置为false是一个非常糟糕的主意,因为那时你会监视一个spy,当Jasmine在你的规范结束时清除spy时,你不会获取

javascript - 我们如何在 Jasmine 中以编程方式清除 spy ?

我们如何以编程方式清除Jasmine测试套件中的spy?谢谢。beforeEach(function(){spyOn($,"ajax").andCallFake(function(params){})})it("shoulddosomething",function(){//Iwanttooverridethespyonajaxhereanddoitalittledifferently}) 最佳答案 将isSpy设置为false是一个非常糟糕的主意,因为那时你会监视一个spy,当Jasmine在你的规范结束时清除spy时,你不会获取

javascript - 检查 Jasmine 中的对象相等性

Jasmine具有内置匹配器toBe和toEqual。如果我有这样的对象:functionMoney(amount,currency){this.amount=amount;this.currency=currency;this.sum=function(money){returnnewMoney(200,"USD");}}并尝试比较newMoney(200,"USD")和sum的结果,这些内置匹配器不会按预期工作。我已设法基于自定义equalsmethod实现解决方法和自定义匹配器,但它似乎很有用。在Jasmine中比较对象的标准方法是什么? 最佳答案

javascript - 检查 Jasmine 中的对象相等性

Jasmine具有内置匹配器toBe和toEqual。如果我有这样的对象:functionMoney(amount,currency){this.amount=amount;this.currency=currency;this.sum=function(money){returnnewMoney(200,"USD");}}并尝试比较newMoney(200,"USD")和sum的结果,这些内置匹配器不会按预期工作。我已设法基于自定义equalsmethod实现解决方法和自定义匹配器,但它似乎很有用。在Jasmine中比较对象的标准方法是什么? 最佳答案

javascript - 如何在 AngularJS 中对独立作用域指令进行单元测试

在AngularJS中单元测试隔离范围的好方法是什么JSFiddleshowingunittest指令片段scope:{name:'=myGreet'},link:function(scope,element,attrs){//showtheinitialstategreet(element,scope[attrs.myGreet]);//listenforchangesinthemodelscope.$watch(attrs.myGreet,function(name){greet(element,name);});}我想确保指令正在监听更改-这不适用于隔离范围:it('should

javascript - 如何在 AngularJS 中对独立作用域指令进行单元测试

在AngularJS中单元测试隔离范围的好方法是什么JSFiddleshowingunittest指令片段scope:{name:'=myGreet'},link:function(scope,element,attrs){//showtheinitialstategreet(element,scope[attrs.myGreet]);//listenforchangesinthemodelscope.$watch(attrs.myGreet,function(name){greet(element,name);});}我想确保指令正在监听更改-这不适用于隔离范围:it('should