为了账号安全,请及时绑定邮箱和手机立即绑定

接口暴露与单元测试的问题?

接口暴露与单元测试的问题?

交互式爱情 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 关注
  • 1079 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信