2016-11-29 44 views
1

我正在使用nodejsreact作爲興趣來編寫網絡應用程序。
我有一個文件,我使用了一些實用程序功能,例如foo如何驗證導入功能?

在某些其他文件中使用此函數後,我決定更改導出並將函數包裝在對象中,如Util.foo

有一個文件,我忘記更改導入語句而不是函數,而我調用foo()而不是Util.foo()。

我無法在我的webpack構建中捕獲它,甚至在我的單元測試中也沒有發現它,只有在運行代碼並執行相應的函數時才能使用它。

我的問題是,我怎樣才能避免這樣的未來錯誤?除了重構工具之外,還有其他工具可用於此事嗎?

順便說一下,我使用的是Atom IDE。

+0

Typescript可以幫助避免這些問題 –

回答

1

如果你的代碼的這部分被完全覆蓋,這應該已經被你的單元測試所捕獲。

調用一個不存在的函數會導致沿着undefined is not a function的錯誤,並且會導致測試用例失敗。

爲了避免這樣的問題,請確保您的測試覆蓋率已經很高。像Istanbul這樣的測試覆蓋工具可能有助於確定需要改進的地方。

+0

好的我會看看'istanbul',但是我寫的單元測試正確導入了'Util',因此測試通過了。使用'foo'的函數沒有單元測試,因爲它是使用foo值作爲參數的第三方函數。我只能在集成測試中捕獲它。但即使如此,在運行該程序之前是否有辦法處理這些拼寫錯誤?一些驗證這些問題,如編譯器? – itaied