class Documentation
{
private $_text;
public function __construct($text)
{
$this->_text = $text;
}
public function generate()
{
return new \DOMElement('documentation', $this->_text);
}
}
明显的解决方案,我能想到的是创造新的DOMDocument
,generate()
函数调用的结果追加和使用$this->assertEqualXMLStructure
预计元素进行比较,但由于某种原因,我不喜欢它,我肯定有替代品。你会如何为这样的班级编写测试?
任何想法?
UPD:好像我错过了一些重要的东西:我想确定的是具有特定内容的特定类型的元素被返回。怎么做?
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);
}
我会编写一个测试,看看是否创建了类,并测试是否返回生成的Domelement实例。 – JvdBerg
也许还有另一个至少要检查某些特定元素是否被包含 – Havelock
@JvdBerg:“如果一个Domelement的实例返回生成” - 显然这还不够。作为一个烟雾测试 - 是的,作为一个单元测试 - 我怀疑。 – zerkms