PHPUnit单元测试中类protected/private方法测试

简介: 这里首先有一个问题要考虑的是,这类方法是否要被测试?理论上,这类方法都会被其它public类型的方法调用,只要对那些public的方法做充分的测试,就可以保证这些方法的可靠性,就没有必要再测了。好像是有道理的。
+关注继续查看

这里首先有一个问题要考虑的是,这类方法是否要被测试?

理论上,这类方法都会被其它public类型的方法调用,只要对那些public的方法做充分的测试,就可以保证这些方法的可靠性,就没有必要再测了。好像是有道理的。

我们先看看好的单元测试的原则:(ATRIP)

  • 自动化(Automatic)
  • 彻底(Thorough )
  • 可重复(Repeatable)
  • 独立(Independent )
  • 专业(Professional)

对于测试private/protected方法来说,有另外三个附加原则:

  • 透明(Transparency) - 不要改变测试下的系统(System Under Test ,SUT),例如,在产品代码中增加包装的方法.
  • 范围(Scope) - 可以在Debug和Release下运行
  • 简单(Simplicity) -最小的开销,因此容易修改,并且非常简单引入最小的风险.

正常情况下,PHP中只有标记为public的方法和属性,才可以在外部被访问,而protected/private方法都无法直接访问。

对于protected的,简单的方法是:通过创建一个子类并增加一个public的方法来包裹该protected的方法,即可通过这个子类的public方法来测试。

对于private的方法,则只能利用PHP的反射特性去访问,protected的方法同样也可以用反射实现访问。PHPUnit中其实在Mock Objects部分就充分使用了该特性来拦截某些方法的返回值,以完成复杂场景的测试。

目录
相关文章
|
17天前
|
JavaScript 前端开发 测试技术
JavaScript测试和调试工具:学习使用测试框架(如Jasmine、Mocha)对JavaScript代码进行单元测试
JavaScript测试和调试工具:学习使用测试框架(如Jasmine、Mocha)对JavaScript代码进行单元测试
|
4月前
|
前端开发 JavaScript 测试技术
前端单元测试和端到端测试
前端单元测试和端到端测试
131 0
|
5月前
|
IDE Java 测试技术
单元测试PHPUnit入门三板斧
什么,你是程序员?什么你从来没写过单元测试用例?嗯,不要惊讶,这在国内正常的啦。有的觉得写这个玩意太耗时间了,有的干脆就不知道单元测试用例是怎么玩的。说来惭愧,小马也是在CICD的“胁迫”下开始正式涉足。
38 0
单元测试PHPUnit入门三板斧
|
5月前
|
敏捷开发 IDE 测试技术
单元测试PHPUnit初体验之安装与示例
啥?你是程序员没写过单元测试?呃,好吧。小马这次也是需要支持CI/CD才刚开始强制自我实行。
64 0
单元测试PHPUnit初体验之安装与示例
|
7月前
|
SQL 存储 数据采集
软件测试之测试的分类(重点:黑盒测试、白盒测试、单元测试、集成测试、系统测试)
1. 按照测试对象进行划分 1)界面测试 2)可靠性测试 3)容错性测试 4)文档测试 5)兼容性测试 6)易用性测试 7)软件安装卸载的测试 8)安全测试 9)性能测试 10)内存泄漏测试 2. 按照是否查看代码划分 1)黑盒测试 2)白盒测试 3)灰盒测试 3. 按照开发阶段划分 1)单元测试(结合 V 模型) 2)集成测试 3)系统测试 4)验收测试 5)将上面四种测试方法同 V 模型的阶段进行对应 4. 按照测试实施组织划分 1)α 测试 2)β 测试 3)第三方测试 5. 按照是否运行进行划分 1)静态测试 2)动态测试 6. 按照是否手工划分 1)手工测试 2)自动化测试
626 0
|
7月前
|
测试技术 PHP
laravle phpunit单元测试登录自动获取token
laravle phpunit单元测试登录自动获取token
53 0
|
8月前
|
测试技术 PHP
PHP: PhpStorm单元测试报错:PHPUnit Cannot open file
PHP: PhpStorm单元测试报错:PHPUnit Cannot open file
45 0
|
10月前
|
测试技术
测试需要做单元测试吗?
我的回答:测试需要做单元测试,但要综合评估团队成员技能、个人意愿、项目迭代周期以及协作默契程度等很多因素,用合适的方法和手段在合适的时机切入,而不是一味强推。
测试需要做单元测试吗?
|
10月前
|
JavaScript 前端开发 测试技术
webpack配置篇(三十四):单元测试和测试覆盖率
webpack配置篇(三十四):单元测试和测试覆盖率
151 0
webpack配置篇(三十四):单元测试和测试覆盖率
相关产品
云迁移中心
推荐文章
更多