今週はずっとNode.jsアプリのテストを書いてばっかりです。 Node.jsにはnockという便利なHTTPモックのモジュールがあり、使ってみたのメモ。
var request = require('request');
var mocha = require('mocha');
var expect = request('chai').expect();
describe('Nock!Nock!Nock!', function () {
var mockURL = 'http://awesomeapi/';
var options = function(params){
return {
uri: mockURL,
method: 'PUT',
headers: { 'Content-Type': 'application/json'},
body: params,
json: true
}
};
beforeEach(function () {
nock(mockURL)
.put('/', {message: 'hello'}).reply(200, 'hello')
.put('/', {message: 'world'}).reply(200, 'world');
});
it('returns hello', function () {
request(options({message: 'hello'}), function (err, res, body) {
expect(body).to.eq('hello');
});
});
it('returns world', function () {
request(options({message: 'world'}), function (err, res, body) {
expect(body).to.eq('world');
});
});
});
すごく簡単に書けますね。他にも機能がたくさんあり複雑な処理も書けそうです。 公式README大事。