从图书馆摩卡单位testingerror handling
我有下面的代码,基本上从数据库中获取用户。 下面的代码是使用Dynamoose,但我假设在许多其他库和包中有类似的东西。
User.get(searchid, function(err, user) { if (err) { console.log(err); return res.send('error'); } else { //DO LOGIC } });
我写了unit testing来处理上面else语句中的所有逻辑。 但我想弄清楚是否有办法编写unit testing来处理代码的if (err)
部分。 基本上我想写unit testing,以确保如果有错误,它会返回正确的东西,我会为任何其他testing我应该写的build议。 如何在这种情况下编写testing,并用unit testing来覆盖这些代码?
你应该模拟User.get
使它直接执行callback,你想要的参数。
要做到这一点,根据您的testing设置,您可能有多种可能性。
我使用rewire https://github.com/jhnns/rewire
如果你的代码如下所示:
//myCode.js var User = require('./model/User'); module.exports = function(){ User.get(searchid, function(err, user) { if (err) { console.log(err); return res.send('error'); } else { //DO LOGIC } }); }
基本你的testing看起来像:
var myCode = rewire("../lib/myCode.js"); ... var UserMock = { get: function (searchid, cb) { cb(new Error(), null); } }; myCode.__set__("User", UserMock); myCode.myFunctionCallingUserGet(function (err, data) { // Test that you send error. });
- 当通过es.map()和JSONStream.stringify()将JSONStream.parsed()数据pipe道传输到文件stream时节点堆耗尽
- 使用$ group时是否可以列出不存在的组?
- 通过JSDom的JQuery不是一个赋予TypeError的函子
- 摩卡挂钩前后不执行
- 当用Chai进行unit testing时,“TypeError:无法读取属性”的“undefined”地址是什么意思?
- Node.js / Mocha / Supertest REST api – 一个del()停止工作后,我添加了第二套房
- 期望断言types错误 – >期望(…).toExist不是一个函数
- Sonarqube没有检测到使用摩卡生成的LCOV报告
- Chrome中的量angular器错误消息“不支持的命令行标志”?
- 为什么beforeEach不能在mocha的第二个describe()语句中运行?
- 尝试在摩卡中使用asynchronous/等待