2015-05-28 59 views
3

我在流星中有一個ReSTFul API。我使用Mandrill,Stripe和其他庫中的鉤子來更新集合。什麼是測試Webhooks的正確方法?

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消息嗎?

回答

5

我使用Mocha(儘管您可以使用其他測試框架作爲Jasmine)。

我將測試與superagent庫結合起來,允許您執行HTTP請求。

接下來的部分是訣竅:建立一個日誌並存儲從Mandril或其他鉤子接收到的JSON並構建傳入響應的庫(或夾具)。

然後你就可以建立你所需要的不同的情況下,例如:

  • 取出所需字段
  • 發送重複
  • 等等

使得這種方法一致要求你花時間思考你期望得到的鉤子,閱讀文檔以評估你正在考慮的情況是不可能的,等等。

我會建議您保留接收到的掛鉤日誌以改進您的測試。

相關問題