javascript - Mocha 的 beforeEach() 和 did() 函数不起作用

标签 javascript node.js express mocha.js

我有一个用 Mocha 编写的非常简单的测试套件。 疯狂的是,当我“进行测试”时,我收到以下错误:

Uncaught TypeError: Object [object Object],[object Object] has no method 'done'

这是代码:

describe('Lists Endpoint (/lists)', function(){

    beforeEach(function(done){
        db.collection('lists').remove(function(err){
            db.collection('lists').insert([{name: 'LPS list', desc: 'Nice list!'}, {name: 'TLB list', desc: 'Cool listo!'}], function(err, records){
                done(); //Throws TypeError
            });            
        });        
    });


    describe('GET /lists', function(){
        it('should return an array of lists', function(done){
            request(app).get('/lists').end(function(err, res){
                res.should.have.status(200);
                res.should.be.json;
                res.body.should.be.an.Array;
                res.body.length.should.eql(2);
                res.body.
                done();
            });
        });
    });
});

最佳答案

我将提取这一行:

res.body.
    done();

读作res.body.done();res.body 对象上没有 done 方法。

关于javascript - Mocha 的 beforeEach() 和 did() 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20666950/

相关文章:

javascript - 优化嵌套 Promise

node.js - 如何从 Rally API 获取相关对象

node.js - Express 4.0.0 生成已弃用的依赖项和漏洞

javascript - node.js 请求库的相对 uri

javascript - 图片填充.js : Need help converting <picture> to the <img> srcset/sizes method

javascript - 打印所有可以通过放置空格组成的字符串

javascript - 在 Firebase 的 ng-repeat 中显示数据

javascript - 在 ReactJS 中切换 View 中的组件

node.js - 在 promisifyAll 创建的 then 链中使用 cancel()

javascript - 将现有项目推送到新创建项目的嵌套数组中