我有一个接收数组作为参数的测试方法,我想从数据提供程序方法中提供数据?
如何才能做到这一点?
public function dataProvider(){
return array(array(
'id'=>1,
'description'=>'',
));
}
/**
* @dataProvider dataProvider
*/
public function testAddDocument($data){
// data here shall be an array provided by the data provider
// some test data here
}
所发生的是它传递“id”键的值...等等
我想传递整个数组
2条答案
按热度按时间k2arahey1#
数据提供程序方法必须返回一个数组,其中每个参数集都有一个数组要传递给测试方法。若要传递数组,请将其与其他参数一起包含。请注意,在示例代码中,您将需要另一个封闭数组。
下面是一个返回两组数据的示例,每组都有两个参数(一个数组和一个字符串)。
**重要:**数据提供程序方法必须是非静态的。PHPUnit示例化测试用例以调用每个数据提供程序方法。
uurv41yg2#
为了清楚起见,我喜欢编写提供程序来构建变量,这些变量命名什么是什么。
在这个例子中,我将从一个简单的数据提供程序开始,它可以获取2个电话号码和2个电话号码,最后我将使用您的特定例子。
首先,我总是将变量命名为
$tests
,这表明我将返回一个“表示测试的项目数组”:如果测试用例变得更加复杂,我会通过在数组中分配一个键来逐一命名它们:
如果每个测试用例变得更复杂,我会用单独的变量来命名每个测试用例,如下所示:
为了弄清楚每件事是什么,有时我在每个测试中设置一个键,我通常使这些键类似于测试中接收参数的变量名,如下所示:
现在它变得超级可读,不需要“注解”(Clean Code规则提倡代码自己说话)。
现在,如果输入的电话号码不是数字,而是一个数字数组,假设我们有“一组
possibleNumbers
“,而不是“一个possibleNumber
“:∮就你而言∮
我将这样编写数据提供程序:
或者更紧凑: