有誰知道如何測試Mongoose驗證?測試MongooseJs驗證
實施例,我有以下模式(作爲例子):
var UserAccount = new Schema({
user_name : { type: String, required: true, lowercase: true, trim: true, index: { unique: true }, validate: [ validateEmail, "Email is not a valid email."] },
password : { type: String, required: true },
date_created : { type: Date, required: true, default: Date.now }
});
的validateEmail方法被定義爲這樣:
// Email Validator
function validateEmail (val) {
return /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(val);
}
我要測試的驗證。最終結果是,我希望能夠測試驗證,並根據這些事情發生,然後我可以編寫其他測試來測試這些代碼片段之間的交互。例如:用戶嘗試使用與使用相同的用戶名註冊(電子郵件已在使用中)。我需要一個測試,我可以實際攔截或看到驗證正在工作而沒有擊中數據庫。在這些測試中,我不想打蒙戈。這些應該是UNIT測試而不是集成測試。 :)
謝謝!
在過去的幾您呼叫用戶的測試。validate():我正在使用grunt和Jasmine Node運行我的測試,並且我的斷言從未被命中以失敗構建。我必須設置回調的測試才能使斷言正常運行。在我的情況下,使用jasmine-node,我在驗證回調中添加了一個jasmine.asyncSpecWait()到每個測試的結尾和一個jasmine.asyncSpecDone()。然後一切都很好。非常有用的答案! – 2014-03-17 17:30:07