草庐IT

sinon-chai

全部标签

node.js - 如何使用 sinon stub 用 typescript 编写的类的私有(private)方法

我正在为一个公共(public)方法编写单元测试,该方法反过来调用用typescript(NodeJS)编写的类的私有(private)方法。示例代码classA{constructor(){}publicmethod1(){if(this.method2()){//Dosomething}else{//Dosomethingelse}}privatemethod2(){returntrue;}}现在要测试method1()我需要stubmethod2()这是一个私有(private)方法。这是我正在尝试的:sinon.stub(A.prototype,"method2");Types

node.js - 使用 Sinon-Chai 时测试失败显示 "Error: timeout of 2000ms exceeded"

我正在为以下路线(express)编写集成测试。代码如下:varq=require("q"),request=require("request");/*ExampleofservicewrapperthatmakesHTTPrequest.*/functiongetProducts(){vardeferred=q.defer();request.get({uri:"http://localhost/some-service"},function(e,r,body){deferred.resolve(JSON.parse(body));});returndeferred.promise;

arrays - 比较 chai 中的数组

我正在使用chai和chai-as-promised(以及更多框架,但在这种情况下无关紧要)编写一些测试,我需要检查我从网页获得的数组是否与预定义的数组。我尝试使用expect(arrayFromPage).to.eventually.deep.equal(predefinedArray),但它不起作用,因为页面上元素的顺序有时不同(这没关系,我不'不需要检查它们是否在相同的顺序)。我找到了一种通过使用expect(listFromPage).to.eventually.include.all.members(predefinedArray)来解决此问题的方法,但我想知道是否有更好的解

javascript - 使用 Sinon 在 javascript 中 stub Redis 交互

我在node.js中工作。我的应用通过node_redis模块与Redis交互。我正在使用mocha和sinon来自动测试我的应用程序。我的应用看起来像这样:...snipvarredisClient=redis.createClient(redisPort,redisHost);varsomeValue=redisClient.get("someKey");returnsomeValue;....我想stub对redisClient.get()的调用。为此,我还需要对redis.createClient()的调用stub-我认为...这是我的测试代码:...varredis=requ

javascript - 在 sinon 中 stub 整个类以进行测试

序言:我已经阅读了很多SO和博客文章,但没有看到任何可以回答这个特定问题的内容。也许我只是在寻找错误的东西......假设我正在开发一个WidgetManager类,它将对Widget对象进行操作。如何使用sinon来测试WidgetManager是否正确使用了WidgetAPI,而不需要拉入整个Widget库?基本原理:WidgetManager的测试应该与Widget类分离。也许我还没有写Widget,或者Widget是一个外部库。无论哪种方式,我都应该能够测试WidgetManager是否正确使用了Widget的API,而无需创建真正的Widget。我知道sinon模拟只能在现有

node.js - 如何在 ES6 中使用 sinon stub 静态方法?

varMyClassStub=sinon.createStubInstance(MyClass);MyClassStub不包含静态方法。如何解决? 最佳答案 静态方法:sinon.stub(YourClass,'yourClassMethod').callsFake(()=>{return{}})不是静态方法:sinon.stub(YourClass.prototype,'yourClassMethod').callsFake(()=>{return{}}) 关于node.js-如何在E

node.js - 使用 Sinon 时,如何替换 stub 实例中的 stub 函数?

如果我通过vara=sinon.createStubInstance(MyContructor)创建了一个实例。如何替换varstub=sinon.stub(object,"method",func);之类的stub函数之一;.我这样做的主要原因是想要实现多个回调解决方法,如thismentioned 最佳答案 您提到的方法(sinon.stub(object,"method",func))是版本1.x中可用的方法,并且做了根据文档:Replacesobject.methodwithafunc,wrappedinaspy.Asusu

node.js - express 中间件测试 mocha chai

有没有办法在express中测试这些中间件:module.exports=functionlogMatchingUrls(pattern){returnfunction(req,res,next){if(pattern.test(req.url)){console.log('requesturl',req.url);req.didSomething=true;}next();}}我发现的唯一中间件测试是:module.exports=function(request,response,next){/**DosomethingtoREQUESTorRESPONSE**/if(!reque

node.js - 带有 AWS-SDK 的 Node 中的 Sinon.Stub

我正在尝试为使用aws-sdkNPM模块的应用程序编写一些测试覆盖率,该模块将事物推送到SQS队列,但我不确定如何正确地模拟事物。这是我目前的测试:varrequest=require('superagent'),expect=require('chai').expect,assert=require('chai').assert,sinon=require('sinon'),AWS=require('aws-sdk'),app=require("../../../../app");describe("Activities",function(){describe("POST/acti

node.js - 使用 Mocha/Chai 和 async/await 验证是否引发了异常

我正在努力寻找在使用async/await时验证promise在Mocha测试中被拒绝的最佳方法。这是一个可行的示例,但我不喜欢should.be.rejectedWith返回一个需要从测试函数返回才能正确评估的promise。使用async/await消除了测试值的这种要求(就像我对下面wins()的结果所做的那样),我觉得我很可能会在某个时候忘记return语句,在在这种情况下测试将始终通过。//Alwayssucceedsfunctionwins(){returnnewPromise(function(resolve,reject){resolve('Winner');});}/