4
我想弄清楚Jest中的手動模擬。我認爲這應該很容易......但事實並非如此。在Jest中手動模擬對象
我的項目目錄被
- __tests__
- 用戶test.js
- 車型
- user.js的
- __mocks__ 個
- user.js的
- node_modules
- ...
- 的package.json
這兩種型號/ user.js的和模型/ __ mocks__ /user.js具有相同的代碼:
module.exports = {
create(username, password) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve({"username":username, "password": password});
}, 100);
});
}
}
文件__tests __ /用戶test.js如下:
test('user creation works',() => {
const user = require('../models/user');
//const user = jest.mock('../models/user');
return user.create("mitchell", "boo");
});
這工作得很好,測試通過,但是當我將其更改爲:
test('user creation works',() => {
//const user = require('../models/user');
const user = jest.mock('../models/user');
return user.create("mitchell", "boo");
});
一點也沒有」 t工作,並吐出:
FAIL __tests__\user-test.js
● user creation works
TypeError: user.create is not a function
at Object.<anonymous>.test (__tests__\user-test.js:4:17)
at process._tickCallback (internal\process\next_tick.js:103:7)