【问题标题】:Which unit testing framework do you use for Symfony?您为 Symfony 使用哪个单元测试框架?
【发布时间】:2010-11-17 12:02:29
【问题描述】:

您为 Symfony 使用哪个单元测试框架?

Lime 还是 PHPUnit?使用它们的优缺点是什么?

【问题讨论】:

    标签: php unit-testing symfony1 phpunit


    【解决方案1】:

    在我看来,我想到了以下几点:

    • PHPUnit 与其他工具的集成度更高,例如,
      • Selenium(PHPUnit 可以用它打开真正的浏览器来测试你的网站)
      • phpUnderControl 用于持续集成
    • PHPUnit 与 Xdebug 配合得很好,可以生成代码覆盖率报告
    • PHPUnit 使用更广泛;这可能意味着更多的支持

    但请注意,我不使用 symfony,也不使用石灰......
    不过,除了那些使用 symfony 的人之外,我从未听过任何人谈论它——这不是一件好事,因为有一天你将不得不使用另一个框架(是的,这会发生 ^^)


    PHPUnit 中没有的一件事:

    • “假”浏览器(能够向应用程序发出 HTTP 请求,无需使用 Selenium 打开真正的浏览器)

    但有些框架(Zend Framework 确实如此,它的 Zend_Test 组件) 与 PHPUnit 集成(或使用它),同时允许将数据注入 MVC 并获取响应,而无需发出任何 HTTP 请求。
    我不知道 symfony 是否允许这样做,但对于 ZF/PHPUnit 来说这是一件好事 ^^


    (是的,不是特定于 symfony 的答案;但我所说的内容在该框架下仍然有效)

    【讨论】:

      【解决方案2】:

      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 代码中,那么值得您花时间检查一下插件并试一试.

      【讨论】:

        猜你喜欢
        • 2011-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 2010-10-18
        • 1970-01-01
        相关资源
        最近更新 更多