所以,这是我一直遇到的一个非常有趣的问题。我目前正在构建一个backbone.js-Rails应用程序。通常只是为了学习目的而构建它。我(就像任何优秀的Rails开发人员一样)在TDD/BDD方面尽力而为,但我遇到了capybara的问题。我有一个仅测试root_path工作的集成规范(主干历史开始、显示初始信息等...)。require'spec_helper'describe"RentalProperties",js:truedodescribe"GET/"doit"shouldshowalistofproperties"dovisitroot_patheventually{pag
我想重新stubsomeHandler.getStatus,但我收到TypeError:AttemptedtowrapgetStatuswhichalreadywrapped..it('isatest',function(){sandbox.stub(someHandler,'getStatus',function(callback){callback(null,{value:1});});sandbox.stub(someOtherHandler,'doSomething',function(callback){callback(null);});sandbox.stub(someH
假设我有一个函数Funca(){//DoSomethingletc=b();returnc;}我想测试函数a和模拟b()并且在模拟中想要分配c。Sinon.Stub(Test,"b").returns("DummyValue");c应分配DummyValue。我该怎么做?describe("a",()=>{leta=a();//mockb();action=execute(a);expect(action).should.return.("DummyValue");}) 最佳答案 当我们在同一个文件中有2个函数并且想要stub其中一
我正在开发一个包装器组件,以便在React中顺利加载图像。我将enzyme与mocha、chai和sinon一起使用来对我的组件进行单元测试。在这里的测试中,我试图测试:组件的状态在图像加载后更新调用了组件上的onLoad实例方法constwrapper=shallow();constonLoad=wrapper.find('img').props().onLoad;constonLoadSpy=sinon.spy(onLoad);wrapper.update();conststatus=wrapper.state().status;expect(onLoadSpy).to.have.
我有一个1秒的jQuery.animateAction,它在页面加载后5秒启动。我在我的Jasmine单元测试代码中设置了一个Sinon计时器,并在7秒后进行测试,以查看后动画属性是否符合预期。它不能正常工作,所以我在我的JasmineHTML测试页面上放置了一个动画实例,以便更好地查看发生了什么。在Firefox和Chrome中,页面加载,动画函数被调用,单元测试立即失败,然后(也是立即)动画可见。在IE、Opera和Safari中,页面加载,动画函数被调用,单元测试立即失败,动画永远不会出现。我希望的是以下内容(在所有浏览器中):页面加载,调用动画函数,动画瞬间完成,单元测试立即成
在我的代码中,我在点击window.confirm提示“确定”时触发回调,我想测试是否触发了回调。在sinon中,我可以通过以下方式stubwindow.confirm函数:constconfirmStub=sinon.stub(window,'confirm');confirmStub.returns(true);有没有办法在Jest中实现这种stub? 最佳答案 开个Jest,您可以使用global覆盖它们。global.confirm=()=>true开个Jest,每个测试文件都在自己的进程中运行,您不必重置设置。
在Sinon我可以做以下事情:varmyObj={prop:'foo'};sinon.stub(myObj,'prop').get(functiongetterFn(){return'bar';});myObj.prop;//'bar'但是我怎样才能对Jest做同样的事情呢?我不能只用jest.fn()之类的东西覆盖函数,因为它不会替换getter"can'tsetthevalueofget" 最佳答案 对于遇到这个答案的其他人来说,Jest22.1.0引入了spyongetterandsettermethods的能力.编辑:如sc
目前,我正在使用PhantomJS在我们的构建服务器上的QUnit和Sinon框架中运行Javascript单元测试。但是,PhantomJS使用带有JIT编译器的JavaScriptCore作为它的Javascript引擎。相反,我想使用GoogleChrome中使用的V8引擎或IE中使用的Chakra。我想这样做是因为我想检查代码的平台兼容性。是否有像PhantomJS这样使用这些引擎的流行测试运行器? 最佳答案 我能想到的最接近的是Zombie.js,这是一个用Javascript编写的headless浏览器,在Node.js
我开始编写一些javascript测试,并试图找出检查模块构造函数的私有(private)成员的最佳方法。例如,在下面的示例中,我使用揭示模块模式将公共(public)api公开到我的模块。我想测试在$.getJSONajax请求的回调期间是否正确设置了privateVar。第二个测试it('shouldupdateprivateVar',...),不起作用,因为myModule.privateVar(有意)不在公共(public)api中对于模块。所以,我的问题是,在不必将privateVar设为公共(public)api的一部分的情况下测试这种行为的最佳方法是什么?是否有更好的方法
假设我有这样一个函数:functionfoo(){obj.method(1);obj.method(2);obj.method(3);}为了测试它,我想做3个测试(使用MochaTDD和Sinon):test('medthodiscalledwith1',function(){varexpectation=sinon.mock(obj).expects('method').once().withExactArgs(1);foo();expectation.verify();});test('medthodiscalledwith2',function(){varexpectation=