使用 mocha 和 request 测试 mongodb 数据库

AlinP25

到目前为止,我有 2 个问题,我正在寻找答案 3 天,但无法弄清楚。
1. 测试时应该什么时候连接数据库?
2. 我在运行测试时总是遇到错误:{ "before each" hook for "should list all books on /book GET" } 并且还没有找到解决方案或确切原因。我究竟做错了什么?到目前为止,我唯一的答案是不要在 beforeEach() 中两次调用 done() 但我没有这样做......

var chai      = require('chai'),
    expect    = chai.expect,
    request   = require('request'), 
    mongoose  = require('mongoose'),
    Book      = require('./../models/book');
// book = require('../model')

mongoose.createConnection('mongodb://localhost/books');

describe('Testing the routes', () => {
    beforeEach((done) => {
        Book.remove({}, (err) => {
            if (err) {
                console.log(err);
            }
        });
        var newBook = new Book();
        newBook.title  = "Lord Of The Rings";
        newBook.author = "J. R. R. Tolkien";
        newBook.pages  = 1234;
        newBook.year   = 2000;
        newBook.save((err) => {
            if (err) {
                console.log(err);
            }
            done();
        });
    });

    it('should list all books on /book GET', (done) => {
        var url = 'http://localhost:8080/book';
        request.get(url, (error, response, body) => {
            expect(body).to.be.an('array');
            expect(body.length).to.equal(1);
            done();
        });
    });
});
马特

mongoose.createConnection是一个异步函数。在实际建立连接之前,该函数返回并且 Node.js 继续运行。

Mongoose 为大多数异步函数返回承诺。与 using 类似done,mocha 支持等待承诺解决/拒绝开箱即用。只要 promise 是returnmocha 函数值。

describe('Testing the routes', function(){

    before('connect', function(){
        return mongoose.createConnection('mongodb://localhost/books')
    })

    beforeEach(function(){
        return Book.remove({})
    })

    beforeEach(function(){
        var newBook = new Book();
        newBook.title  = "Lord Of The Rings";
        newBook.author = "J. R. R. Tolkien";
        newBook.pages  = 1234;
        newBook.year   = 2000;
        return newBook.save();
    });

    it('should list all books on /book GET', function(done){
        var url = 'http://localhost:8080/book';
        request.get(url, (error, response, body) => {
            if (error) done(error)
            expect(body).to.be.an('array');
            expect(body.length).to.equal(1);
            done();
        });
    });
});

mocha 也使用thisfor 配置,因此避免在 mocha 定义中使用箭头函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Karma和Mocha进行异步测试

来自分类Dev

使用git在测试和生产环境之间同步数据库

来自分类Dev

如何在Django中使用不同的数据库引擎进行测试和生产

来自分类Dev

如何使用Mocha和Nock重新测试相同的URL?

来自分类Dev

使用Spock和Robospock进行单元测试以创建SQLite数据库

来自分类Dev

将测试数据库与grunt和mocha一起使用

来自分类Dev

首次使用Mocha和Sinonjs进行异步单元测试

来自分类Dev

使用Robolectric和ORMLite测试时使用模拟数据库

来自分类Dev

使用依赖注入和“完成”编写Karma + Mocha测试吗?

来自分类Dev

如何使用chai和mocha测试子进程?

来自分类Dev

Laravel 5:使用不同的数据库进行测试和本地

来自分类Dev

使用Babel和Webpack的Mocha测试失败

来自分类Dev

使用setInterval测试功能时,Mocha和Chai测试失败

来自分类Dev

无法使用Node.js和mongoDB按字母从mongodb数据库搜索

来自分类Dev

将MongoDB与Docker组合使用,无法从本地数据库认证和下载数据

来自分类Dev

如何使用chai和mocha测试数组数组中的元素?

来自分类Dev

在运行Mocha测试之前删除MongoDB数据库

来自分类Dev

使用git在测试和生产环境之间同步数据库

来自分类Dev

在测试和生产中使用不同的数据库

来自分类Dev

如何在Django中使用不同的数据库引擎进行测试和生产

来自分类Dev

使用SailsJS和Superagent运行Mocha测试

来自分类Dev

使用Mocha,Chai,chaiAsPromised和Sinon测试JS Promise

来自分类Dev

使用 SocketIO 和 Express 进行 Node mocha API 测试

来自分类Dev

使用 mocha 和 chai 测试对象数组中的对象键

来自分类Dev

使用 Mocha 和 Chai 测试 React

来自分类Dev

使用全局变量的 mocha 测试(和 babel)

来自分类Dev

使用 vuejs 和 nodejs 从 mongodb 数据库读取数据

来自分类Dev

使用 Mocha 和 chai 库测试 nodejs 方法

来自分类Dev

使用 javascript 的 Mocha 和 Sinon 单元测试问题

Related 相关文章

  1. 1

    使用Karma和Mocha进行异步测试

  2. 2

    使用git在测试和生产环境之间同步数据库

  3. 3

    如何在Django中使用不同的数据库引擎进行测试和生产

  4. 4

    如何使用Mocha和Nock重新测试相同的URL?

  5. 5

    使用Spock和Robospock进行单元测试以创建SQLite数据库

  6. 6

    将测试数据库与grunt和mocha一起使用

  7. 7

    首次使用Mocha和Sinonjs进行异步单元测试

  8. 8

    使用Robolectric和ORMLite测试时使用模拟数据库

  9. 9

    使用依赖注入和“完成”编写Karma + Mocha测试吗?

  10. 10

    如何使用chai和mocha测试子进程?

  11. 11

    Laravel 5:使用不同的数据库进行测试和本地

  12. 12

    使用Babel和Webpack的Mocha测试失败

  13. 13

    使用setInterval测试功能时,Mocha和Chai测试失败

  14. 14

    无法使用Node.js和mongoDB按字母从mongodb数据库搜索

  15. 15

    将MongoDB与Docker组合使用,无法从本地数据库认证和下载数据

  16. 16

    如何使用chai和mocha测试数组数组中的元素?

  17. 17

    在运行Mocha测试之前删除MongoDB数据库

  18. 18

    使用git在测试和生产环境之间同步数据库

  19. 19

    在测试和生产中使用不同的数据库

  20. 20

    如何在Django中使用不同的数据库引擎进行测试和生产

  21. 21

    使用SailsJS和Superagent运行Mocha测试

  22. 22

    使用Mocha,Chai,chaiAsPromised和Sinon测试JS Promise

  23. 23

    使用 SocketIO 和 Express 进行 Node mocha API 测试

  24. 24

    使用 mocha 和 chai 测试对象数组中的对象键

  25. 25

    使用 Mocha 和 Chai 测试 React

  26. 26

    使用全局变量的 mocha 测试(和 babel)

  27. 27

    使用 vuejs 和 nodejs 从 mongodb 数据库读取数据

  28. 28

    使用 Mocha 和 chai 库测试 nodejs 方法

  29. 29

    使用 javascript 的 Mocha 和 Sinon 单元测试问题

热门标签

归档