https://github.com/DophinL/baidu-ocr-idcard/blob/master/lib/baidu-ocr-...之前單元測試只針對于暴露的接口IDCardOCR.prototype.scan。但是我剛才在查看代碼的時候,發現有一個函數extractValidPeriod需要改動,然后我改了之后又進行手動測試,于是我想能不能把這個納入單元測試。但是,這個函數功能是用戶不需要的,暴露出來是否會有問題?如果不暴露出來,又怎樣進行該函數的單元測試?我有一些想法,比如說create函數是暴露出來的,可以直接在create函數對象上添加要測試的方法,create.extractValidPeriod = ...。但是又感覺不太優雅。請問有沒有比較好的方法解決這個問題?順便問一下大家單元測試會測哪些內容?
2 回答

繁星coding
TA貢獻1797條經驗 獲得超4個贊
你的問題分為3塊
是否應該測試私有代碼?
這是我的觀點:應該測試.私有方法完全可能非常復雜。應該單獨覆蓋。
公開測試代碼是否影響封裝?
肯定要影響的,因為你必須公開這個方法,才可能測試
但是可以通過設置環境變量什么的,限定僅僅在TEST階段才公開這些方法。比如
module.exports.public_method1 = your_public_method1 if (process.env["in_testing"]){ module.exports.testing_method1 = your_test_method1 module.exports.testing_method2 = your_test_method2 }
只有環境變量設置了,才會公開這些方法。 這樣,愛封裝的人會好受點。
- 2 回答
- 0 關注
- 1159 瀏覽
添加回答
舉報
0/150
提交
取消