【发布时间】:2010-11-17 12:02:29
【问题描述】:
您为 Symfony 使用哪个单元测试框架?
Lime 还是 PHPUnit?使用它们的优缺点是什么?
【问题讨论】:
标签: php unit-testing symfony1 phpunit
您为 Symfony 使用哪个单元测试框架?
Lime 还是 PHPUnit?使用它们的优缺点是什么?
【问题讨论】:
标签: php unit-testing symfony1 phpunit
在我看来,我想到了以下几点:
但请注意,我不使用 symfony,也不使用石灰......
不过,除了那些使用 symfony 的人之外,我从未听过任何人谈论它——这不是一件好事,因为有一天你将不得不使用另一个框架(是的,这会发生 ^^)
PHPUnit 中没有的一件事:
但有些框架(Zend Framework 确实如此,它的 Zend_Test 组件) 与 PHPUnit 集成(或使用它),同时允许将数据注入 MVC 并获取响应,而无需发出任何 HTTP 请求。
我不知道 symfony 是否允许这样做,但对于 ZF/PHPUnit 来说这是一件好事 ^^
(是的,不是特定于 symfony 的答案;但我所说的内容在该框架下仍然有效)
【讨论】:
Lime 是一个更简单的测试框架,它的好坏取决于你想如何使用它。
symfony 库本身使用它自己的测试框架 Lime 来测试它的代码库。来自 symfony 书:
它基于 Test::More Perl 库,并且是 TAP 兼容的,它 意味着测试的结果是 显示在测试中指定 任何协议,旨在更好 测试输出的可读性。
我不能保证像 symfony 文档所声称的那样,lime 框架比其他 PHP 测试框架“更轻量级”,但我真的很喜欢它直接内置到您的 symfony 项目中并且与 symfony 命令行配合得很好工具,无需任何额外配置。一件特别酷的事情是 symfony 中的石灰测试被设置为在你的“测试”环境中运行,它有自己的数据库、symfony 缓存(在每个测试会话期间被清除)和环境变量。当您想要进行功能测试(检查服务器响应和模块/操作中的 html 输出,而不是基本单元测试)时,这会派上用场。我也喜欢石灰非常容易上手和理解,因为它非常简单。您还可以将测试放入 YAML 配置文件,而不是手动编写测试。
Pascal 完全正确,PHPUnit 的使用范围更广,您可以在非 symfony 项目中使用它。甚至还有一个插件,PHPUnit symfony plugin。如果你只是想在开发 symfony 应用程序时直接开始编写简单的测试,我最好的建议是使用 Lime。但是,如果您有时间并希望在 symfony 世界之外使用这些测试技能,或者将预先存在的 PHPUnit 测试引入到您的 symfony 代码中,那么值得您花时间检查一下插件并试一试.
【讨论】: