2017-04-21 64 views
3

如何使用jest框架測試void javascript函數(不返回任何東西的函數)?你能否提供一個相同的例子?如何使用jest測試無效的javascript函數?

+0

最好的,你Google的標題 –

+2

測試返回什麼內容?他們返回'undefined'? –

+3

不返回值的函數必須有副作用或無意義;副作用,例如改變傳遞給它的對象的狀態,或者在環境中做某事。因此,如果功能不是毫無意義的,請檢查其副作用。如果你舉了實際的例子,那麼幫助你會容易得多。 –

回答

3

測試void函數的最佳方法是嘲笑其依賴關係的行爲。

// module being tested 
import sideEffect from 'some-module'; 

export default function() { 
    sideEffect(); 
} 

使用文件嘲弄和功能的期望,你可以斷言,函數調用的其他模塊如預期:

import hasSideEffect from './hasSideEffect'; 
import sideEffect from 'some-module'; 

jest.mock('some-module'); 

test('calls sideEffect',() => { 
    hasSideEffect(); 

    expect(sideEffect).toHaveBeenCalledTimes(1); 
    expect(sideEffect).toHaveBeenCalledWith(); 
}); 
相關問題