麻烦预言和PHP DOM

时间:2015-07-01 06:37:48

标签: php phpunit prophecy

我一直在移动我的PHPUnit测试以使用PHPSpec的Prophecy库 - 但是在使用PHP DOMDocument的假人时我遇到了一个奇怪的错误:

class MyTest extends PHPUnit_Framework_TestCase {
    function testExample() {
        $inputDocument  = $this->prophesize("DOMDocument")->reveal();
        $outputDocument = $this->prophesize("DOMDocument")->reveal();

        $xsltProcessor = $this->prophesize("XSLTProcessor");
        $xsltProcessor->transformToDoc($inputDocument)->willReturn($outputDocument)->shouldBeCalled();
        $xsltProcessor = $xsltProcessor->reveal();

        $xsltProcessor->transformToDoc($inputDocument);
    }
}

我收到错误ErrorException: DOMDocument::loadXML(): Empty string supplied as input

我不确定为什么要调用loadXML - 这些应该是傻瓜......

1 个答案:

答案 0 :(得分:0)

你收到这条消息不是因为预言(它运作得很好),而是(惊讶)因为第84行vendor/sebastian/comparator/src/DOMNodeComparator.php

使用此phpunit.xml文件查看我的意思:

<phpunit
    convertErrorsToExceptions="false">
</phpunit>

当phpunit尝试获取DomDocument的文本表示时,会弹出错误。因此,调用loadXML()。