class Documentation
{
private $_text;
public function __construct($text)
{
$this->_text = $text;
}
public function generate()
{
return new \DOMElement('documentation', $this->_text);
}
}
我能想到的显而易见的解决方案是创建 new DOMDocument
,附加generate()
函数调用的结果并使用 与预期的元素进行比较$this->assertEqualXMLStructure
,但由于某种原因,我不喜欢它,并且确信还有其他选择。
有任何想法吗?
UPD:似乎我错过了一些重要的事情:我要确保的是返回具有特定内容的特定类型的元素。怎么做?
更新 2:
这是我目前可以创建的,但它很丑,不是吗?
public function testGenerate()
{
$expected = new \DOMDocument();
$expected->loadXML('<?xml version="1.0" encoding="utf-8"?><documentation>foo</documentation>');
$documentation = new Documentation('foo');
$actual = new \DOMDocument('1.0', 'utf-8');
$actual->appendChild($documentation->generate());
$this->assertEqualXMLStructure($expected, $actual);
}