亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

接口暴露與單元測試的問題?

接口暴露與單元測試的問題?

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

2 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

簡單看了下,我覺得你可以吧你的單元測試寫的細一點,驗證retData.validPeriod 的數據結構啊

查看完整回答
反對 回復 2018-08-11
?
繁星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
 }

只有環境變量設置了,才會公開這些方法。 這樣,愛封裝的人會好受點。


查看完整回答
反對 回復 2018-08-11
  • 2 回答
  • 0 關注
  • 1159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號