当前位置:Gxlcms > PHP教程 > [PHP]PHPUnit入门之二

[PHP]PHPUnit入门之二

时间:2021-07-01 10:21:17 帮助过:28人阅读

Data Providers

一个test method可以接受任意个参数。这些参数可以通过一个data provider method(下例中的provider())提供。
data provider method用@dataProvider来声明。
一个data provider method必须是public的,可以返回一组数组,也可以返回一个对象,该对象继承于Iterator接口,根据每一步迭代产生了一个数组。
对每个数组都是这个集合的一部分,test method调用时将以数组内容作为它的参数。

代码

1 2 class DataTest extends PHPUnit_Framework_TestCase
3 {
4 /* *
5 * @dataProvider provider
6 */
7 public function testAdd( $a , $b , $c )
8 {
9 $this -> assertEquals( $c , $a + $b );
10 }
11
12 public function provider()
13 {
14 return array (
15 array ( 0 , 0 , 0 ) ,
16 array ( 0 , 1 , 1 ) ,
17 array ( 1 , 0 , 1 ) ,
18 array ( 1 , 1 , 3 )
19 );
20 }
21 }
22 ?>


phpunit DataTest
PHPUnit 3.4.2 by Sebastian Bergmann.

...F

Time: 0 seconds

There was 1 failure:

1) testAdd(DataTest) with data (1, 1, 3)
Failed asserting that matches expected value .
/home/sb/DataTest.php:21

FAILURES!
Tests: 4, Assertions: 4, Failures: 1.
上例中,第四组数据测试不通过。
*当一个test同时从@dataProvider方法和一个或多个@depends方法接受参数时,来自data provider的参数将在来自@depends的参数之前。

人气教程排行