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

慕村9548890
TA貢獻(xiàn)1884條經(jīng)驗 獲得超4個贊
簡單看了下,我覺得你可以吧你的單元測試寫的細(xì)一點,驗證retData.validPeriod 的數(shù)據(jù)結(jié)構(gòu)啊

繁星coding
TA貢獻(xiàn)1797條經(jīng)驗 獲得超4個贊
你的問題分為3塊
是否應(yīng)該測試私有代碼?
這是我的觀點:應(yīng)該測試.私有方法完全可能非常復(fù)雜。應(yīng)該單獨覆蓋。
公開測試代碼是否影響封裝?
肯定要影響的,因為你必須公開這個方法,才可能測試
但是可以通過設(shè)置環(huán)境變量什么的,限定僅僅在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 }
只有環(huán)境變量設(shè)置了,才會公開這些方法。 這樣,愛封裝的人會好受點。
- 2 回答
- 0 關(guān)注
- 1151 瀏覽
添加回答
舉報
0/150
提交
取消