本文目的 单元测试过程中经常会遇到被测试函数A依赖另一个函数B,但是B已经完全测试过,没有必要在测试A的时候重复测试B。如何去除这种不必要的测试呢?本文探讨了如何手动解决测试依赖,更进一步地,结合PHPUnit的Mock API,提出更加优雅,高效的解决方案。 一个例子 假设有一个订单管理类 ...
本文目的 最近使用php开发项目,并用phpunit进行单元测试,使用phpunit的mock机制有一段时间了,决定记录使用经验,方便以后查阅。 mock例子 public function testBit oClientMock this gt getMock SomeClient 创建mock对象 oClientMock gt expects this gt once 设定次数 gt meth ...
2012-09-08 20:38 3 4578 推荐指数:
本文目的 单元测试过程中经常会遇到被测试函数A依赖另一个函数B,但是B已经完全测试过,没有必要在测试A的时候重复测试B。如何去除这种不必要的测试呢?本文探讨了如何手动解决测试依赖,更进一步地,结合PHPUnit的Mock API,提出更加优雅,高效的解决方案。 一个例子 假设有一个订单管理类 ...
在上篇日记中我介绍了写一个基本的测试类的方法,今天在基本测试类的基础上,再来介绍测试方法的进阶功能。 测试方法间的依赖关系 PHPUnit可以实现测试方法的依赖关系,也就是说,一个测试方法的参数的内容和是否会运行依赖于另外一个测试方法结果,依赖关系通过注释@depends来定义.这个特性 ...
由于环境依赖关系,或者是特殊环境的构造要求,这就可能导致我们在测试环境下做验证是很困难的。 当我们无法直接使用的真实被依赖模块时,我们可以用“测试替身”(Test Double)来代替。这个测试替身不需要与真实的被依赖模块有相同的行为,它只需要提供和真实的被依赖模块有相同的API就行了 ...
,但是在整个配置过程中,可以了解PHPUnit的目录结构,对于以后深入的学习和使用PHPUnit不无益处 ...
一、Linux 下安装PHPunit PHP 档案包 (PHAR) 要获取 PHPUnit,最简单的方法是下载 PHPUnit 的 PHP 档案包 (PHAR),它将 PHPUnit 所需要的所有必要组件(以及某些可选组件)捆绑在单个文件中: 要使用 PHP档案包(PHAR)需要有 phar ...
安装并使用PHPunit Linux 下安装PHPunit PHP 档案包 (PHAR) 要获取 PHPUnit,最简单的方法是下载 PHPUnit 的 PHP 档案包 (PHAR),它将 PHPUnit 所需要的所有必要组件(以及某些可选组件)捆绑在单个文件中 ...
我们编写代码的时候,总会写一些工具类,为了方便调用喜欢使用static关键字来修饰对应方法。 那么现在举例说明,还是准备两个接口,第一个是查询学生总数,第二个是新增学生两个接口,具体示例代码如下: 接着我们再来看看这个静态工具类StudentUtils,具体代码示例 ...
关于Mock Answer 上一篇文章,有介绍过关于Arguments Matche的使用,其实 Answer的作用与其比较类似,但是它比 Arguments Matcher 更加强大。 Arguments Matche 即传入不同的参数,返回不同的结果,重在入参的判断,在入参重写 ...