您使用哪种单元测试框架用于Symfony?
Lime或PHPUnit?使用它们的利弊是什么?
答案 0 :(得分:8)
在我看来,这里有一些我想到的事情:
但请注意我不使用symfony,也不使用石灰......
尽管如此,除了那些使用symfony的人之外,我从来没有说过任何人谈论它 - 这不是一件好事,因为那天你必须使用另一个框架(是的,这发生了^^)
有一点不在PHPUnit中:
但是一些框架(Zend Framework,它的Zend_Test组件)与PHPUnit集成(或使用它),同时允许将数据注入MVC并获取响应,而不必发布任何HTTP请求。
我不知道symfony是否允许这样做,但这对ZF / PHPUnit来说是件好事^^
(是的,不是symfony特定的答案;但我所说的事情必须仍然适用于该框架)
答案 1 :(得分:6)
Lime是一个更简单的测试框架,根据您的使用方式,这可能是好事还是坏事。
symfony库本身使用自己的测试框架Lime来测试其代码库。来自symfony书:
它基于Test :: More Perl 库,并且符合TAP标准 意味着测试的结果是 按照测试中的指定显示 任何协议,旨在更好 测试输出的可读性。
我不能保证,除了symfony docs声称,lime框架比其他PHP测试框架“更轻量级”,但我确实喜欢它已经内置到你的symfony项目中,并且与symfony命令行配合得很好没有任何其他配置的工具。特别酷的一件事是symfony中的lime测试设置为在你的“测试”环境中运行,该环境有自己的数据库,symfony缓存(在每个测试会话期间被清除)和环境变量。当您想要进行功能测试(在模块/操作中检查服务器响应和html输出,而不是基本单元测试)时,这会派上用场。我也喜欢石灰是非常容易接受和理解,因为它是如此简单。您还可以将测试放入YAML配置文件,而不是手动编写测试。
Pascal完全正确,PHPUnit使用得更广泛,你可以在非symfony项目中使用它。甚至有一个插件,PHPUnit symfony plugin。我最好的建议是使用石灰,如果你只是想在开发symfony应用程序时直接编写简单的测试。但是,如果您有时间并希望在symfony世界之外使用这些测试技能,或者将预先存在的PHPUnit测试引入您的symfony代码中,那么值得您花时间查看插件并给它一个旋转