我正在撰写一个博客平台,在网络服务器上测试时,一切都运行得非常好。但是,我正在尝试使用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
有没有人对Mocha有很多经验可以帮助我?我不认为我可以使用before()
或beforeEach()
语句简单地访问Mongo,因为测试的一部分是确保我的代码正确访问数据库。
答案 0 :(得分:2)
您需要为实际测试调用it
函数。 describe
用于描述一组相关测试,然后在it
回调中调用describe
是实际测试。
describe("my module", function () {
it("should require OK", function () {
require("../my-module").should.exist
});
});