我试图达到这样的目标:
describe("TEST",function() {
Offer.find({},{_id:1, title:1}).exec(function(error, offers) {
for (var i = 0; i < offers.length; i++) {
it("Ask transaction : " + offers[i].title, function(done) {
// do something with offers[i];
}
}
...
但是Mocha甚至没有检测到文件中的测试。为什么?
答案 0 :(得分:1)
每个测试用例都以it("", function(){ /* write test code here */ } )
代码块开头。
如果您正在寻找执行某些测试设置(如插入数据),那么您可以使用before
功能来执行这些操作。
示例:强>
describe("TEST",function() {
before(function() {
// runs before all tests in this block
});
it("should blah", function(done) {
// Your test case starts here.
}
}
您可以参考Mocha的官方网站中的示例;
查看:强>
https://mochajs.org/
答案 1 :(得分:1)
所以,多亏了你的回答和一些研究,我设法做了我想要的。
describe("TRANSACTIONS TESTS",function() {
var offers;
before(function(done) {
Offer.find({},{_id:1, title:1}).exec(function(error, result) {
offers = result;
done();
});
});
it("TEST ALL OFFERS", function(done) {
for (var i = 0; i < offers.length; i++) {
const tmp_i = i;
server
.post('/transactions')
.send(data)
.expect("Content-type",/json/)
.expect(200)
.end(function(err,res) {
// DO TEST STUFF HERE
if (tmp_i == offers.length - 1) {
done();
}
});
}
});
const变量是必要的,以避免错误(我总是等于数组的最大大小而不是递增)