2016-08-24 103 views
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不允許!

+0

你想要測試'someFunc'來調用某些東西嗎?你可以顯示你的代碼 – grgmo

+0

最後,我已禁用automock,這太棘手。謝謝! –

回答

0

最後我已經更新了Jest,並且它禁用了自動模擬。這不是確定性的,但不能重現。

相關問題