主に外部のAPIが絡んでくるアプリのテストに使えるモジュールです。Node.jsの標準モジュールであるhttpではなく、requestというモジュール経由のHTTPアクセスを乗っ取ってレスポンスを偽装します。
npmで入れることが出来ます。
npm install request node-fakeweb
使い方は下記のようにします。
var request = require('request');
var fakeweb = require('node-fakeweb');
fakeweb.allowNetConnect = false;
fakeweb.registerUri({
uri: "http://www.google.co.jp:80/",
statusCode: 200,
body: "Hello World!"
});
request.get({uri: "http://www.google.co.jp:80/"}, function(err, response, body) {
console.log("StatusCode:" + response.statusCode);
console.log("Body:" + body);
});
実行してみると
$ node test.js
StatusCode:200
Body:Hello World!
ちゃんとレスポンスが偽装されていますね。私はVowsと組み合わせて使っています。