jjzjj

javascript - 诗乃找不到方法 'spy'

我正在努力攀登将require.js/mocha/chai/sinon与Backbone应用程序结合使用的学习曲线。当我运行thistest:define(["chai","sinon"],function(chai,sinon){varexpect=chai.expect;describe("Tryingoutthetestlibraries",function(){describe("Chai",function(){it("shouldbeequalusing'expect'",function(){expect(hello()).to.equal("HelloWorld");}

javascript - dojo中如何加载不是模块的JS文件?

首先我会说我是javascript和dojo菜鸟。但是,我一直在使用D.O.H框架为我的js代码编写一些单元测试。我注意到的一件事是该框架似乎没有办法模拟XHR请求。所以我决定使用sinon进行模拟。这是我的问题,我无法将sinon代码成功加载到我的dojo模块中。这是我尝试过的:define(["doh/runner","tests/sinon-1.4.2"],function(doh,sinnon){...});我将测试包映射到正确的目录,并且可以从那里加载其他文件。那么我该如何加载sinon? 最佳答案 通过GenericSc

javascript - 在对显示模块进行单元测试时如何 stub 私有(private)函数

我一直在构建一个Node模块,它包装了对GitHubAPI的大量调用,并且以我无限的智慧使用揭示模块模式构建了这个模块,使我的包装函数保持私有(private)并且只公开简单的方法。请参见下面的示例:github.shortcuts=(function(){varappPath;varcreateRepo=function(name){vardeferred=Q.defer();github.repos.create({name:name,auto_init:true},function(error,result){if(error){deferred.reject(newError(

javascript - Sinon 似乎没有监视事件处理程序回调

我正在使用Jasmin、Simon和jasmin-simon测试主干View。代码如下:varMessageContainerView=Backbone.View.extend({id:'messages',initialize:function(){this.collection.bind('add',this.addMessage,this);},render:function(event){this.collection.each(this.addMessage);returnthis;},addMessage:function(message){console.log('add

javascript - 我如何使用 Sinon stub $(window).width() ?

我在JSView中有一个函数,如果窗口宽度小于1000,它会执行一些操作。我正在尝试使用Mocha、chai为此编写单元测试,并通过Phantom/Chrome/中的karma测试运行器运行测试Chromium浏览器。我还使用sinon对方法进行stub并使其返回一些所需的值。现在有一个条件检查,如果窗口宽度小于1000,那么我怎么能stub呢,我正在尝试类似下面的方法,sinon.stub($(window).width());$(window).width().returns(900);但它不起作用。有什么特定的方法可以stub$(window).width()值吗?

javascript - 诗乃JS : Is there a way to stub a method on object argument's key value in sinon js

我想在以下响应中模拟对obj.key3值的不同响应。就像ifobj.key3=true然后返回与obj.key3=false不同的响应functionmethod(obj){returnanotherMethod({key1:'val1',key2:obj.key3});} 最佳答案 您可以使用.withArgs()和对象匹配器根据调用它的参数使stub返回(或执行)某些操作。例如:varsinon=require('sinon');//Thisisjustanexample,youcanobviouslystubexistingm

javascript - Sinon.JS 的 stub.callsArg(index) 是做什么的?

说真的,我想不通。文档给了我们:stub.callsArg(index)-使stub调用提供的索引处的参数作为回调函数。stub.callsArg(0);使stub调用第一个参数作为回调。但是,我不知道要索引到的参数列表在哪里。也许我只是不明白什么是stub... 最佳答案 stub是具有可编程行为的noop函数。在您的情况下,callsArg(index)将对stub进行编程以期望在index处有一个函数并立即调用它。functionsayHi(){console.log('hi');}varstub=sinon.stub().c

javascript - 使用 Sinon 在同一文件中 stub 方法

我正在尝试对文件中的一个函数进行单元测试,同时对同一文件中的另一个函数进行stub,但没有应用模拟,而是调用了真实的方法。这是一个例子://file:'foo.js'exportfunctiona(){//.....}exportfunctionb(){letstuff=a();//calla//...dostuff}还有我的测试:import*asactionsfrom'foo';constaStub=sinon.stub(actions,'a').returns('mockedreturn');actions.b();//b()isexecuted,whichcallsa()ins

javascript - Sinon stub 是如何工作的?

在过去的几个月里,我一直在使用JavaScript并使用SinonJS来stub一些行为。我已经设法让它发挥作用,我使用了很多方法,一切都很好。但对于诗浓在幕后的运作方式,我还是有些疑问。我想我说的是Sinon,但这个问题可能适用于所有其他旨在模拟/stub/spy的库。过去几年我使用最多的语言是Java。在Java中,我使用Mockito来模拟/stub依赖项和依赖项注入(inject)。我曾经导入类,用@Mock注释字段并将此模拟作为参数传递给被测类。我很容易看出我在做什么:模拟一个类并将模拟作为参数传递。当我第一次开始使用SinonJS时,我看到了这样的东西:moduleUnde

javascript - QUnit、Sinon.js 和 Backbone 单元测试受挫 : sinon spy appears to fail to detect Backbone Model event callbacks

在下面的单元测试代码中:TestModel=Backbone.Model.extend({defaults:{'selection':null},initialize:function(){this.on('change:selection',this.doSomething);},doSomething:function(){console.log("Somethinghasbeendone.");}});module("Test",{setup:function(){this.testModel=newTestModel();}});test("intra-modeleventbi