相关疑难解决方法(0)

在node.js中模拟数据库?

我如何在我的node.js应用程序中模拟出数据库,在这种情况下,它mongodb用作博客REST API的后端?

当然,我可以将数据库设置为特定的testing数据库,但我仍然会保存数据而不是仅测试我的代码,还有数据库,所以我实际上没有进行单元测试而是集成测试.
那应该怎么做?创建数据库包装器作为应用程序和数据库之间的中间层,并在测试时替换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);
Run Code Online (Sandbox Code Playgroud)
// 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();
    });

  });
));
Run Code Online (Sandbox Code Playgroud)

database unit-testing mocking mongodb node.js

70
推荐指数
5
解决办法
5万
查看次数

标签 统计

database ×1

mocking ×1

mongodb ×1

node.js ×1

unit-testing ×1