2013-11-25 69 views
1

我測試我的NodeJS應用與摩卡和應該。第一次測試順利進行時,第二次失敗(錯誤等於空)。在這兩個測試中,如果在回調中有一個有效的用戶(兩者在貓鼬中都有相同的ID)。測試顯然不等待數據庫操作發生。NodeJS測試數據庫與摩卡和should.js

describe("User", function(){ 
    before(function (done) { 
     // clear database 
     model.UserModel.collection.remove(done); 
    }) 

    it("should save", function(done){ 
     user1.save(function(error, user){ 
      should.not.exist(error); 
      user.should.have.property("first_name", "Rainer"); 
      done(); 
     }) 
    }) 

    it("should not save duplicate user", function(done){ 
     user1.save(function(error, user){ 
      should.exist(error); 
      done(); 
     }) 
    }) 
}) 


還當我把第二次測試在第一次測試的回調不工作。 我想測試一個重複的鍵錯誤,但不能在給定的情況下實現它。

回答

1

看起來您正在重新使用user1文檔。

在Mongoose中,您可以再次保存同一文檔(例如,在對其進行更改後);這並不意味着保存了新的文檔,只是舊的文檔會被更新。

如果你想正確測試,你應該在第二次測試中創建一個新的文檔實例(與第一個屬性相同)。