【问题标题】:What is the correct way to test Webhooks?测试 Webhook 的正确方法是什么?
【发布时间】:2015-05-28 22:12:41
【问题描述】:

我在 Meteor 中有一个 ReSTFul API。我使用 Mandrill、Stripe 和其他库中的钩子来更新集合。

Router.route('/mandrill/message_rejected', { where: 'server' })
  .post(function () {
    var request = EJSON.parse(this.request.body.mandrill_events);

    var rejects = _.map(_.where(request, {
      event: 'reject'
    }, {
      return object.msg.email;
    });

    Meteor.users.update({
      emails: {
        $elemMatch: {
          "address": {
            $in: rejects
          }
        }
      }
    }, {
      $set: { status: 'rejected' }
    });

    this.response.end();
  });

我的问题是;我怎样才能自动化测试呢?该请求应该来自 Mandrill。有没有办法以一致的方式测试 webhook 消息?

【问题讨论】:

    标签: node.js meteor webhooks


    【解决方案1】:

    我使用Mocha(尽管您可以使用其他测试框架作为Jasmine)。

    我将测试与允许您执行 HTTP 请求的 superagent 库结合起来。

    接下来的部分就是诀窍:设置日志并存储从 Mandril 或您接收的其他挂钩接收到的 JSON,并构建传入响应的库(或夹具)。

    然后您可以构建您需要的不同案例,例如:

    • 删除预期字段
    • 发送副本
    • 等等

    要使这种方法保持一致,您需要花时间考虑您希望收到哪些钩子,阅读文档以评估您正在考虑的案例是否可行等等。

    我建议您保留收到的挂钩日志,以便随着时间的推移改进您的测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-12
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多