【发布时间】:2014-08-23 10:40:04
【问题描述】:
为了对一个类进行单元测试,我想创建一个 SimpleXMLElement 对象的模拟。不幸的是,我无法弄清楚如何做到这一点。我通常会这样做:
class XmlTest extends PHPUnit_Framework_TestCase
{
public function testSimpleXmlMock()
{
$mock = $this
->getMockBuilder('SimpleXMLElement')
->disableOriginalConstructor()
->getMock();
$this->assertInstanceOf('SimpleXMLElement', $mock);
}
}
这个公式在模拟其他类时有效(例如DOMDocument),但不适用于SimpleXMLElement。运行测试会产生以下错误:
1) XmlTest::testSimpleXmlMock
unserialize(): Node no longer exists
我正在使用 PHPUnit 4.1.3。我在模拟生成器上尝试了各种选项组合,包括将 XML 字符串作为参数传递给构造函数,但找不到有效的组合。
如何创建模拟 SimpleXMLElement 对象?
【问题讨论】:
标签: php mocking phpunit simplexml