使用Mocha

时间:2016-07-18 08:32:40

标签: node.js mocha

我试图达到这样的目标:

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甚至没有检测到文件中的测试。为什么?

2 个答案:

答案 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变量是必要的,以避免错误(我总是等于数组的最大大小而不是递增)