0
我處於奇怪的狀態(我使用Jest/React/Flux/Webpack)...這裏是測試文件。Jest mocking不適用於特定文件
jest.unmock('../dashboard');
import CommonUtils from "../utils/CommonUtils";
describe('Dashboard Page',() => {
it('creates',() => {
...
});
});
當我運行測試,拋出一個錯誤:
● Runtime Error
- TypeError: (0 , _shouldUpdate2.default) is not a function
...
at Object.<anonymous> (src\main\js\components\App.js:3:38)
at Object.<anonymous> (src\main\js\utils\CommonUtils.js:4:38)
at Object.<anonymous> (src\test\js\dashboard-test.js:3:46)
這裏,CommonUtils
顯然不是嘲笑。在我的其他文件中,自動模擬工作得很好。
如果我添加在測試文件的開頭:
jest.mock('../utils/CommonUtils');
以前同樣的錯誤。不過,如果我補充一點:
jest.mock('../utils/CommonUtils',() => {
return {someFunc: jest.fn()};
});
CommonUtils
現在嘲笑,但我不能比較來自someFunc
的模擬對象,因爲它總是被重新創建...並且我不能創建外部變量
var a = {someFunc: jest.fn()};
jest.mock('../utils/CommonUtils',() => {
return a;
});
Jest不允許!
你想要測試'someFunc'來調用某些東西嗎?你可以顯示你的代碼 – grgmo
最後,我已禁用automock,這太棘手。謝謝! –