【问题标题】:How to write code coverage for error block in mocha chai如何为 mocha chai 中的错误块编写代码覆盖率
【发布时间】:2019-01-29 20:33:46
【问题描述】:

我正在使用 Mocha 测试我的节点 js 应用程序。我无法覆盖函数的错误块。下面是代码。

 public getTaskSummaryByTaskId(req: Request, res: Response, next: 
  NextFunction) {
    let taskId = parseInt(req.query['taskId'], 0);
    new TasksManager().getTaskSummaryByTaskId(taskId).then(results => {
        let data = results[0];
        let taskList: ITaskSummary = {
            Task: (data[0].length === 0 ? null : data[0][0]),
            TaskWorkList: (data[1].length === 0 ? null : data[1]),
            TaskAttachments: (data[2].length === 0 ? null : data[2]),
            TaskAdditionalInfo: (data[3].length === 0 ? null : data[3])
        };
        return Api.ok(req, res, taskList);
    }, err => {
        next(err);
    });
 }

以下是我为上述函数调用的代码覆盖率编写的测试用例。如何覆盖上述调用的“错误”块

it('Task Summary By TaskId', () => {
return chai.request(app).get(route + '/taskSummary')
    .query({ taskId: 1000 })
    .then(res => {
        expect(res.body).to.have.property('Task');
        expect(res.body).to.have.property('TaskWorkList');
        expect(res.body).to.have.property('TaskAttachments');
        expect(res.body).to.have.property('TaskAdditionalInfo');
        expect(res).to.be.json;
        expect(res.body).to.be.an('object');
    });
});

【问题讨论】:

    标签: node.js express mocha.js chai


    【解决方案1】:

    我建议您考虑使用 sinon js 并在该错误中存根。
    如果您只需要测试其他功能但不想等待(例如带有大对象的 io 调用),它也非常有用。

    【讨论】:

    • 如果你想知道 sinon 被用来伪造方法/函数响应和类似的东西
    • 谢谢你 charbel k。就我而言,io 调用是强制性的。在那种情况下如何处理它。
    • 最后你会从那个错误中返回一个值到主块吗?
    猜你喜欢
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 2018-05-21
    • 2018-09-30
    • 2013-05-28
    • 2011-06-24
    相关资源
    最近更新 更多