0

我正在编写一个博客平台,在 Web 服务器上进行测试时,一切都运行良好。但是,我正在尝试使用 Mocha 和 Should.js 编写单元测试,但我遇到了不应该出现错误的错误。例如,在下面的代码中,每当我尝试向回调函数(第三个参数)实际添加一些东西时,比如调用done()或声明类似的东西fakeReq.entries.should.exist,我都会收到一百万个错误:

describe("#load()", function(done){
    entries.load(fakeReq,fakeRes,function(){},"my-first-post")
})

这是函数的样子:

exports.load = function(req,res,next,slug){
    var User = mongoose.model('User')
    Entry.load(req.param('year'), req.param('month'), slug, function (err, article) {
        if (err) return next(err)
        req.article = article
        next()
    })
}

然而,像这样让它看起来好像什么都没有经过测试。从我的命令行(请注意,上面的代码行在 中Entries):

Entries
  #show()
    ✓ should render something 

EntrySchema
  #from_fake
    ◦ should have a title: TEST
    ✓ should have a title 
    ◦ should have a slug: test
    ✓ should have a slug 

有没有人对摩卡有很多经验可以帮助我?我认为我不能简单地使用before()orbeforeEach()语句访问 Mongo,因为部分测试是确保我的代码正确访问数据库。

4

1 回答 1

2

您需要it为实际测试调用该函数。describe它描述了一组相关的测试,然后itdescribe回调中调用是实际的测试。

describe("my module", function () {
  it("should require OK", function () {
      require("../my-module").should.exist
  });
});
于 2013-08-08T16:21:34.527 回答