2017-04-03 74 views
0

所以我試過查找這個bug,但我似乎無法找到迎合我的bug的答案。我使用摩卡和chai-http來測試一些API。我只是使用他們相應的RESTFUL方法(POST,GET,PUT)來檢查端點並檢查響應(非常簡單)。問題是,單獨使用我的測試套件(如果我一次只運行一個套件),但是當我使用我的gulp命令運行它們時...我對某些測試用例(「回調函數」那些在如果你熟悉摩卡如果鉤)回調不是函數 - 摩卡/貓鼬

這裏是我得到的錯誤:

Uncaught TypeError: callback.apply is not a function 
      at Immediate.<anonymous> (node_modules/mongoose/lib/model.js:3683:16) 
      at Immediate._onImmediate (node_modules/mongoose/node_modules/mquery/lib/utils.js:137:16) 

這裏是我的目錄,我的測試案例所在的結構:

test 
    backend 
     assignments_tests.js 
     application_tests.js 
     courses_test.js 

&我有一個以下的大酒杯文件:

// Set the environment variable for the test cases to point to production 
gulp.task('set-testing-env', function() { 
    return process.env.NODE_ENV = 'production'; 
}) 

// gulp task for backend 
gulp.task('test-backend', ['set-testing-env'], function() { 
    return gulp.src('test/backend/**/*.js', {read: false}) 
    .pipe(mocha({ 
     reporter: 'spec', 
     timeout: 60000 
    })) 
    .on('error', function(err) { 
     // console.log(err); 
     process.exit(); 
    }); 
}); 

&終於我的測試案例的樣本:

describe("testing GET" .... 
    before(function(done) { 
     ... setting up stuff here and calling done ... 
    }) 

     describe("get courses information and courses offered", function() { 
     it("gets a courses information", function(done) { 
      const endpoint = test.endpoint + "/courseInfo/" + test.course 
      chai.request(app) 
       .get(endpoint) 
       .end(function(err, res) { 
       expect(err, "Error hitting endpoint").to.be.null; 
       expect(res, "Expected data in json format").to.be.json; 
       expect(res, "Expected status to be 200").to.have.status(200); 
       expect(res.body, "Expected course info!").to.have.length(1); 
       expect(res.body[0],"Missing keys").to.have.all.keys(courseInfo); 
       done(); 
       }) 
     }) 
    }) 

    describe("testing POST" ... 
    before(function(done) { 
     ... setting up and calling done ... 
    }) 

    describe(... 
     it(...) 
    }) 
    }) 

我也不太清楚爲什麼我得到一個回調不是一個函數錯誤。 :( 任何幫助,將不勝感激

回答

0

大概在代碼的某些部分,你在這裏沒有包括你調用一個方法貓鼬通過像太多的對象作爲參數,像這樣的問題:!

其中的一個對象被解釋爲一個功能,但不能被稱爲這樣

這是一個常見的問題,但你沒有;。TI包括任何運行Mongoose方法的代碼,因此很難說這是否是這裏的問題。