我一直在移动我的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 - 这些应该是傻瓜......
答案 0 :(得分:0)
你收到这条消息不是因为预言(它运作得很好),而是(惊讶)因为第84行vendor/sebastian/comparator/src/DOMNodeComparator.php
使用此phpunit.xml
文件查看我的意思:
<phpunit
convertErrorsToExceptions="false">
</phpunit>
当phpunit尝试获取DomDocument的文本表示时,会弹出错误。因此,调用loadXML()。