大佬教程收集整理的这篇文章主要介绍了node.js – 在同一文件中定义的Sinon stubbing helper方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
export function foo(id: number): Promise<Boolean> { return new Promise<Boolean>((resolve,reject) => { findSomething(id) .then((data) => { //do something with data }) } } export function findSomething(id: number): Promise<Object> { return new Promise<Object> ((resolve,reject) => { let query = 'SELECT * FROM user'; db.executeQuery(query); .then(data) => { if(data.length < 1) { reject(new Error('whoops')); } resolve(data); },(err) => { reject(err); }) }) }
所以我正在使用Sinon为外部函数foo编写单元测试,因此我想将它调用的函数存根,findSomething.我这样做如下:
import * as @R_262_9004@db from '../../src/user-database'; describe('POST /someEndpoint',() => { describe('when successful',() => { let stub; beforeEach(function() { stub = sinon.stub(@R_262_9004@db,'findSomething'); }); afterEach(function() { stub.restore(); }); it('should respond with 200',function(donE) { stub.returns(anObjectIPredefine); request(server) .post(basePath) .send(aPayloadIPredefine) .expect(200,donE); }); } }
当我运行测试时,我没有看到我告诉存根的对象返回此stub.returns(anObjectIPredefine).实际上我将函数findSomething正常执行并从dB中获取数据.有什么明显的我做错了吗?我唯一的猜测是stub = sinon.stub(@R_262_9004@db,’findSomething’)不是用于在与被测试函数相同的范围内定义函数的正确语法.我无法找到替代语法.
以上是大佬教程为你收集整理的node.js – 在同一文件中定义的Sinon stubbing helper方法全部内容,希望文章能够帮你解决node.js – 在同一文件中定义的Sinon stubbing helper方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。