【发布时间】:2012-10-16 07:27:44
【问题描述】:
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:“如果为生成返回了 Domelement 的实例”——显然这还不够。作为冒烟测试 - 是的,作为单元测试 - 我怀疑。
标签: php unit-testing testing phpunit