2013-06-24 65 views
0

我正在嘗試爲我正在學習的項目編寫一些基本的單元測試,並遇到了讓我難倒的東西。貓鼬在應用程序中保存工作,但不在摩卡

基本上,我可以在獨立節點應用程序中運行下面的代碼,代碼將創建新的數據庫並按預期插入記錄。如果我接着採用相同的代碼並在節點中的mocha測試中運行它,我會看到mongod報告一個新的連接,但沒有創建數據庫並且沒有插入記錄(並且沒有報告錯誤)。

任何想法正在發生(貓鼬代碼直接從貓鼬網站拉)。

獨立節點應用程序(server.js)

var mg = require('mongoose'); 

mg.connect('mongodb://localhost/cat_test'); 

var Cat = mg.model('Cat', { name: String }); 
var kitty = new Cat({ name: 'Zildjian' }); 
kitty.save(function(err){ 
    if (err){ 
     console.log(err); 
    } 
    process.exit(); 
}); 

摩卡測試(test.js)

describe('Saving models', function(){ 
    it('Should allow models to be saved to the database', function(){ 
     var mg = require('mongoose'); 

     mg.connect('mongodb://localhost/cat_test'); 

     var Cat = mg.model('Cat', { name: String }); 
     var kitty = new Cat({ name: 'Zildjian' }); 
     kitty.save(function(err){ 
      if (err){ 
       console.log(err); 
      } 
      done(); 
     }); 
    }); 
}); 

的思考?我猜這是非常明顯的,我忽略了,但我很難過。

回答

3

我想通了 -

我需要做的參數添加到它的呼叫 -

摩卡測試 - 修訂

// The parameter below was left off before, which caused the test to run without 
// waiting for results. 
describe('Saving models', function(done){ 
    it('Should allow models to be saved to the database', function(){ 
     var mg = require('mongoose'); 

     mg.connect('mongodb://localhost/cat_test'); 

     var Cat = mg.model('Cat', { name: String }); 
     var kitty = new Cat({ name: 'Zildjian' }); 
     kitty.save(function(err){ 
      if (err){ 
       console.log(err); 
      } 
      done(); 
     }); 
    }); 
}); 
+0

接受你自己的答案所以這似乎爲解決:) – Esteban