こんにちは、express js コードで単体テストを行いたいのですが、データをモックしたいので、複数の Web サイトやブログを検索した後、このライブラリを見つけましたが、このライブラリをモックやデータに使用する方法がわかりません。私のテストコードは
var request = require('supertest');
var server = require('./app');
var chai = require('chai');
var chaiHttp = require('chai-http');
var server = require('./app');
var should = chai.should();
chai.use(chaiHttp);
describe('loading express', function () {
it('responds to /', function testSlash(done) {
request(server)
.get('/')
.expect(200, done);
});
it('404 everything else', function testPath(done) {
request(server)
.get('/foo/bar')
.expect(404, done);
});
it('responds to /customers/getCustomerData', function testPath(done) {
request(server)
.get('/customers/getCustomerData?id=0987654321')
.end(function(err, res){
res.should.have.status(200);
res.body.should.be.a('object');
res.body.status.should.equal("success");
res.body.data.customerId.should.equal("0987654321");
done();
});
});
});
現在、このコードはデータベースからデータを取得していますが、モック データを使用した単体テストが必要です。どうすればこれを達成できますか?
__編集__
Express js routes ファイル内に記述されたコードをテストしたいと考えています。このルートは、このようにapp.jsファイル内で呼び出しています
var customers = require('./routes/customers');
app.use('/customers', customers);
現在、顧客のルートファイルに含まれるコードは次のとおりです。
function getCustomerData(req, res, next) {
var response = {};
var cb = function (response) {
res.send(response);
}
var modelObj = req.models.customer_master;
var data = req.query;
controllers.customers.get(modelObj, data, cb);
};
router.get('/getCustomerData', function (req, res, next) {
getCustomerData(req, res, next);
});
モックデータを使って「get」メソッドのレスポンスをテストしたい