将SimpleXMLElement作为PHPUnit中的提供程序传递

时间:2016-01-25 23:30:09

标签: php phpunit simplexml

我正在尝试使用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中的提供程序传递对象实例?

提前致谢。

0 个答案:

没有答案