我正在尝试使用PHPUnit进行一些单元测试,以测试我正在尝试的一些消息处理程序类对AWS的XML响应的处理。我以为我尝试将保存到文件中的XML文件加载到XML对象中,然后将其传递给测试将是一种巧妙的方式,所以我尝试了以下内容:
class cs_responses_tests extends PHPUnit_Framework_TestCase {
public static function DescribeDomainResults_Provider(){
$xml = simplexml_load_file(__DIR__ .'/DescribeDomainsResult.xml');
return [$xml];
}
/**
* @dataProvider DescribeDomainResults_Provider
*/
public function test_DomainStatus_ClassBasic($xml){
$obj = new DomainStatus($xml);
assertInstanceOf('DomainStatus', $obj);
}
}
然而,这会产生Data set #0 is invalid.
警告。我已经尝试将var_dump($xml)
放在simplexml_load_file
之后,并正确加载XML。
事实上它说数据集#0,让我相信数组正确传递(因为xml对象应该是元素0),我已经尝试使提供者非静态和静态但这似乎没有差。
我错过了什么吗?或者是否无法从PHPUnit中的提供程序传递对象实例?
提前致谢。