0
我使用貓鼬和我有登錄功能,試圖找到用戶,然後驗證他的密碼(我不會在這裏描述此功能的所有邏輯,但只有主要部分向您展示我的問題) 。從動態獲取對象的間諜方法
function login(req, res) {
...
User.findOne(...)
.then((user) => {
user.validPassword(...);
...
});
}
我已經定義了一個包含validPassword方法的用戶模型和所有工作正常,但我有麻煩窺探validPassword方法。
我用茉莉花來我的測試中,我試圖做這樣:
const user = new User(...);
spyOn(user, 'validPassword').and.callThrough();
expect(user.validPassword).toHaveBeenCalled(); // was never called :(
當然,我所謂的登錄功能。當我以這種方式測試findOne方法,它工作正常,但它是簡單,因爲我所說的方法,從用戶的構造函數:
spyOn(User, 'findOne').and.callThrough();
expect(User.findOne).toHaveBeenCalled(); // this works fine!
我想是因爲findOne方法解決新的用戶對象我的問題是關係到不同的情況下,對於我和測試中我創建了第二個,什麼是完全不同的對象,但我不確定這個猜想。 你能告訴我如何修復?