用PHP开始的单元测试

时间:2011-01-07 09:29:16

标签: php unit-testing phpunit simpletest

  

可能重复:
  Simple test vs PHPunit

我对软件开发的良好实践不熟悉。我需要知道我应该使用女巫测试单元框架。我看到有些人使用PHPUnit而其他人使用SimpleTest。我应该为初学者选择什么样的套餐?

最诚挚的问候,

5 个答案:

答案 0 :(得分:25)

我真的真的感到困惑,Simpletest仍然被认为是phpunit的替代品。也许我只是被误导了,但就我所见:

  • PHPUnit是标准;大多数框架都使用它(比如Zend Framework,Cake,Agavi,甚至Symfony都在Symfony 2中为phpunit删除自己的Framework)。
  • PHPUnit集成在每个PHP IDE(Eclipse,Netbeans,Zend Stuide,PHPStorm)中,效果很好。
    • Simpletest有一个用于PHP 5.1的eclipse扩展(a.k.a.很旧,以及它在sourceforge上),没有别的。
  • PHPUnit适用于每个连续的集成服务器,因为它输出所有标准日志文件以用于代码覆盖和测试报告。
    • Simpletest没有。虽然这不是一个大问题,但一旦你停止“只是测试”并开始开发软件,它会让你大吃一惊(是的,这句话很挑衅:)不要太认真)。
  • PHPUnit是主动,稳定的,并且适用于每个代码库,每个场景以及您想要编写测试的每种方式。
    • Simpletest没有维护,过时,并且不适用于PHP 5.3(一年前发布)
  • (主观)PHPUnit provides much nicer代码覆盖率报告than Simpletest
    • 使用PHPUnit,您还可以在IDE(Netbeans,Eclipse,...)中获取这些报告。

我还没有看到任何有利于Simpletest的论据。安装起来并不简单,因为PHPUnit可以通过pear获得:

pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit

并且“第一次测试”看起来几乎相同。

对于你想要测试的一切,PHPUnit将有一个解决方案,你几乎可以在任何地方找到帮助(SO,#fpunit irc channel on freenode,几乎每个php开发人员;)

如果我说错了或忘记了什么,请纠正我。)

答案 1 :(得分:5)

我从SimpleTest开始,因为学习曲线似乎并不陡峭。但它没有得到维护,并且在PHP5.3中引发了大量警告,并且无法完成我想要的任何事情。我最终不得不切换到PHPUnit,这是一个转换我的测试的漫长过程。如果我刚开始使用PHPUnit了!

答案 2 :(得分:2)

SimpleTest稍微容易掌握,但PHPUnit是最好的(至少在我看来),所以如果你想开始学习和使用框架,那么从你将要使用的那个开始TDD的主人。不要看它现在是更容易还是更难,因为如果你从SimpleTest开始,那么你开始使用Zend Framework,因为你的老板告诉你,你必须使用PHPUnit和ZF。想想你的未来,因为一个易于学习的框架并不一定是最好的框架,通常更难以掌握框架。

另请查看他们的修订版,看看哪一个更好。

答案 3 :(得分:0)

我发现SimpleTest易于启动,可用于我的目的。现在没有发现大问题。手册/网站有点令人困惑,但通过一些示例搜索就足够了。

感觉不是很专业,但是当你要求初学者框架时,一定要尝试那个:)

答案 4 :(得分:0)

这是一个很好的阅读...这使用SimpleTest并从这开始比PHPUnit更好...

Newbie's Guide to Unit testing