Как бы я высмеял базу данных в моем приложении node.js, которое в этом случае использует mongodb
в качестве бэкэнда для REST API в блоге?
Конечно, я мог бы установить базу данных в определенную базу данных testing
, но я бы сохранил данные и не тестировал только мой код, но также и базу данных, поэтому на самом деле я не выполняю модульное тестирование, а тестирование интеграции. < ш > Так что же делать? Создавать обертки базы данных как средний уровень между приложением и db и заменять DAL при тестировании?
// app.js
var express = require('express');
app = express(),
mongo = require('mongoskin'),
db = mongo.db('localhost:27017/test?auto_reconnect');
app.get('/posts/:slug', function(req, res){
db.collection('posts').findOne({slug: req.params.slug}, function (err, post) {
res.send(JSON.stringify(post), 200);
});
});
app.listen(3000);
// test.js
r = require('requestah')(3000);
describe("Does some testing", function() {
it("Fetches a blogpost by slug", function(done) {
r.get("/posts/aslug", function(res) {
expect(res.statusCode).to.equal(200);
expect(JSON.parse(res.body)["title"]).to.not.equal(null);
return done();
});
});
));