我很努力地找到一種方法來單元測試貓鼬領域的驗證。目前,我有如下測試:單元測試貓鼬驗證承諾解決/拒絕
it('should be invalid if googleId is empty',() =>
testBook.googleId = '';
const newBook = new Book(testBook);
return newBook.validate().catch((err) => {
should.exist(err.errors.googleId);
});
});
如預期,因爲,如果我有googleId
正確的驗證,測試將通過,因爲它會斷言err.errors.googleId
存在這個測試是不工作的,但如果我不對googleId
有任何驗證,它也會通過,因爲.catch()
永遠不會被調用,並且假定測試正在通過。
我試圖把should.fail()
一個.then()
裏面,但這樣它總是在.catch()
但使用不同的錯誤結束了,如果沒有確認將與should.fail()
錯誤被逮住,如果有確認將與模型趕上驗證錯誤。
什麼是實現這種測試的最佳方式?
非常感謝!
編輯: 我使用的newBook.validate()
回調試圖和它的作品,但我從來沒有使用回調模型的方法,我總是傾向於使用的承諾,所以我應該使用回調在這種特殊情況下或仍有使用承諾處理它的更好方法是什麼?
哦,那太棒了,我不知道'then()'第二個回調函數,現在我在第一個回調函數中返回should.fail(),並在第二個回調函數中聲明它,並且所有的作品很棒:D非常感謝! –