Node.js 测试Webhook的正确方法是什么?

Node.js 测试Webhook的正确方法是什么?,node.js,meteor,webhooks,Node.js,Meteor,Webhooks,我在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,

我在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消息?

我使用(尽管您也可以使用其他测试框架)

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

下一部分的技巧是:建立一个日志并存储从Mandril或其他钩子接收到的JSON,然后构建一个传入响应的库(或fixture)

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

  • 删除预期字段
  • 发送副本
  • 等等
要使这种方法保持一致,您需要花时间思考您希望收到的钩子,阅读文档以评估您正在考虑的案例是否不可能,等等

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