Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在node.js中模拟数据库?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我如何模拟我的node.js应用程序中的数据库在这种情况下使用MongoDB作为博客REST API的后端?

当然,我可以设置数据库一个特定的测试数据库,但我仍然保存数据,而不是测试我的代码,但也测试数据库,所以我实际上不做单元测试,但集成测试。
 那么应该怎么办呢?创建数据库包装器作为应用程序和数据库间的中间层,并在测试中替换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();
    });

  });
));

解决方法

我不认为数据库相关的代码可以正确测试,而不用数据库软件测试。这是因为你测试的代码不仅仅是javascript,而且是数据库查询字符串。即使在你的情况下,查询看起来很简单,你不能依赖它是永远的方式。

所以任何数据库仿真层将必然实现整个数据库(减去磁盘存储)。到那时,你最终使用数据库仿真器进行集成测试,即使你称之为单元测试。另一个缺点是,数据库仿真器可能最终与数据库相比有一组不同的错误,你可能最终必须为数据库仿真器和数据库编码(类似于IE vs Firefox vs Chrome的情况)。 )。

因此,在我看来,正确测试代码的唯一方法是将其与真实数据库接口。

大佬总结

以上是大佬教程为你收集整理的在node.js中模拟数据库?全部内容,希望文章能够帮你解决在node.js中模拟数据库?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。