草庐IT

mocking-stubbing

全部标签

javascript - 如何 stub aws-sdk

假设我有以下内容//filesample.jsvaraws=require('aws-sdk');vardynamoDB=newaws.DynamoDB();exports.processData=function(){vardata=dynamoDB.getItem(params);//sosomethingwithdata};如何为上述代码示例编写单元测试。//filesample_test.jsvaraws=require('aws-sdk');varsinon=require('sinon');//thefollowingcodedoesntseemtostubthefunct

javascript - 使用 Sinon stub get 方法

我正在尝试对具有属性的对象的get方法进行stub,工作正常:sinon.stub(input.model,'get');input.model.get.returns(10);但是考虑一下我们是否需要在对象中stub一些特定的属性,例如:input.model.get('yourValue')↪这怎么能stub?有什么想法吗? 最佳答案 stub.withArgs()应该做你想做的。参见http://sinonjs.org/docs/#stubs.sinon.stub(input.model,'get').withArgs('yo

javascript - 为什么我的 jest.mock 中的 Promise reject() 会转到 then() 而不是 catch()?

我有两个文件,getItemInfo.js进行API调用,getItemInfo.test.js是相应的Jest测试文件。在测试文件中,我正在模拟由Node模块request-promise触发的http调用。问题在第二个代码块上,被*********包围。基本上为什么reject()错误仍然会在第二个单元测试中进入then()block?//getItemInfo.jsconstrp=require('request-promise');constgetItemInfo=(id)=>{constroot='https://jsonplaceholder.typicode.com/po

javascript - sinon stub 不替换功能。

我尝试了一个虚拟模块并将其stub,但没有用。app.jsfunctionfoo(){returnrun_func()}functionrun_func(){return'1'}exports._test={foo:foo,run_func:run_func}测试.jsapp=require("./app.js")._testdescribe('test',function(){it('test',function(){vartest_stub=sinon.stub(app,'run_func').callsFake(function(){return'0'})test_stub.re

javascript - 我应该如何避免使用 Sinon.js stub 属性

我发现Sinon不允许您stub属性,只有方法。我想弄清楚如何处理/接受这个。我有以下代码:varPlayer={addPoints:function(points){this.score+=points;},score:0}varGame={setPlayers:function(players){this.players=players;},over:function(){returnthis.players.some(function(player){returnplayer.score>=100;});},}这是我写的一个测试:describe("Game",function(

javascript - 使用 angular-mocks 匹配所有 GET url for backendless

我现在正在编写一个没有后端ajax的前端。我正在使用angular-mocks来模拟这样的API调用:$httpBackend.when('GET','/somelink').respond(function(method,url,data){//dosomething});但是,如果ajax传递params:{id:12345},它将附加到url为'/somelink?id=12345'。catchwhen('GET','/somelink')有没有办法使用RegEx或一些技巧来解决这个问题?只是为了不管params里面有什么,respond()仍然会被调用?谢谢。更新1:我不能使用

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 - 如何在 Capybara 验收测试中 stub JavaScript 延迟?

MyRails应用程序包含一个JavaScript模式,它会在用户单击链接后45秒弹出。结果,我的验收测试失败了。我最初尝试在我的Capybara验收测试中使用Timecopgem来快进时间,但那没有用。然而,当我添加一个sleep(45)时,它确实起作用了。显然,我不能在我的规范中使用sleep(45)3次,但知道什么有效是很好的,这样我可以用更快的方法更接近它。我从实验中得出的结论是,Ruby跟踪时间,Javascript跟踪时间,而Timecop是快进Ruby时间而不是Javascript时间。有没有办法在我的Capybara测试中快进45秒,以便触发我的Javascript事件

javascript - 仅在闭包中定义的模拟/ stub 对象

首先,为了测试我的库,我使用了Mocha和Chai,但有时我可能也需要Sinon。这是图书馆:importServicefrom'service';//athird-partymoduleoutofmycontrolconstservice=Service(...);classMyLib{...uses`service`inabunchofdifferentways......service.put(foo)......service.get(bar)...}exportdefaultMyLib;这基本上是测试文件:importMyLibfrom'../my-lib.js';descr

javascript - 如何将 Jest 中的 '__mocks__' 文件夹移动到/test?

我已经开始在Jest中使用mocks来测试我的NodeJS应用程序并且它们工作得很好,但是将__mocks__文件夹移动到/test文件夹会更有意义所以与测试相关的所有内容都在那里,而不是在/src中混合文件。这在某种程度上是可能的吗?我在Jest文档中的任何地方都找不到它。 最佳答案 jest.mock('../src/service',()=>require('./__mocks__/request'));这对我有用 关于javascript-如何将Jest中的'__mocks__'