【问题标题】:Override Prerequisite in HapiJS Unit Test在 HapiJS 单元测试中覆盖先决条件
【发布时间】:2018-04-24 11:42:55
【问题描述】:

我正在尝试为在先决条件中进行外部 API 调用的路由编写测试。在我正在编写的测试中,我不希望进行该调用,但我想使用存根来模拟调用。

如何覆盖测试中的先决条件?

【问题讨论】:

    标签: unit-testing mocha.js hapijs


    【解决方案1】:

    你试过Shot吗?我也没有,但它会将虚假的 HTTP 请求/响应注入到节点 HTTP 服务器中,用于模拟服务器逻辑、编写测试或调试。

    在您的测试运行之前,您可以模拟您希望发出的请求,并指定预期的结果。

    const Http = require('http');
    const Shot = require('shot');
    
    (function () {
    
       const dispatch = function (req, res) {
           const reply = 'Hello World';
           res.writeHead(200, { 
                'Content-Type': 'text/plain', 
                'Content-Length': reply.length 
           });
           res.end(reply);
       };
    
       const server = Http.createServer(dispatch);
    
       Shot.inject(dispatch, { method: 'get', url: '/api/hello' }, (res) => {
           console.log(res.payload);
       });
    })()
    

    【讨论】:

    • 谢谢@mykeels。实际上,我几分钟前刚刚看到了镜头包。我正在浏览它的文档,虽然解释性不太强,但我希望利用它来模拟外部 API 调用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多