0

我一直在移动我的 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 - 这些应该是假人......

4

1 回答 1

0

您收到此消息不是因为 Prophecy(它工作得很好),而是(惊喜)因为vendor/sebastian/comparator/src/DOMNodeComparator.php第 84 行

使用这个phpunit.xml文件来看看我的意思:

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

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

于 2016-07-19T18:40:18.920 回答