大佬教程收集整理的这篇文章主要介绍了phpunit测试xml输出,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有很多方法来测试一个xml输出是否正确,比其他一些容易一些.
如果你有一个函数的部分xml输出(让我们称之为$person-> output()):
<person> <eyes>blue</eyes> <hair> <style>curly</style> </hair> </person>
第一个想法是使用你必须生成的@L_450_22@,并将它放入测试用例来测试,以确保xml没有改变,这样做:
function testWhoLeoutput() { $person = new person(); $person->setEyes("blue"); $person->setHairStyle("curly"); $this-assertEquals(file_get_contents("data\pregenerated_xml.xml"),$person->output()); }
测试通过,每个人都很开心…但是,这不允许xml的扩展.另外一个问题是您首先测试您输出的内容,这可能会导致一些进一步的问题.
如果放置了需要了解头发颜色的新功能,会发生什么?测试将中断,您将需要从脚本中执行另一个xml输出,以确认xml输出仍然正常工作.
此外,如果测试中断,那么我们不知道它在哪里破坏,只是新的字符串不同于旧的字符串.
解决方案:
PHPUnit具有调用assertTag()(和assertNotTag())的功能,它将通过xml,并且可以断定标签是否存在,内容是什么,并确认它是否正确设置.如果将更多项目添加到xml输出中,以下内容将不会中断:
function testOutputPersonHasEyes() { $person = new person(); $person->setEyes("blue"); $person->setHairStyle("curly"); $this->assertTag( array('tag' => 'person','child' => array('tag' => 'eyes') ),$person->output()); }
assertTag这里检查一个’person’标签,它有一个小孩标签’eyes’.现在,如果您将xml输出交换为如下所示:
<person> <hair> <style>curly</style> </hair> <eyes>blue</eyes> </person>
您仍然会通过上述测试,因为这仍然是有效的xml,并且仍然有效的输出任何正在消耗这个xml的脚本.
显然,您将需要编写测试以确保内容符合预期,并且其他项目是正确的,但结构允许较少的假阴性测试和较长的工作,尽管在开发时损失更多的时间.
对于附加功能,Tobias Schlitt wrote a great article在PHPUnit中单元测试xml生成,并且还通过创建一个dom对象并使用它在测试用例类周围的包装器和使用PHP xPath进行测试,以及一个很好的解释,不利于这样做.
以上是大佬教程为你收集整理的phpunit测试xml输出全部内容,希望文章能够帮你解决phpunit测试xml输出所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。