【问题标题】:Is there a standard way of segregating unit and functional tests for a Symfony2 app?Symfony2 应用程序是否有分离单元和功能测试的标准方法?
【发布时间】:2012-05-04 07:12:37
【问题描述】:

我有一个带有单元测试和功能测试的 Symfony2 应用程序,我想知道是否有一种通常的做法来分离单元测试和功能测试,这样我在运行测试套件时就没有编译配置等的开销?单元测试套件不应依赖于数据库或特定配置的存在。我正在考虑采用一种命名模式来消除功能测试的歧义,或者以某种方式制作两个不同的测试套件,一个不包括捆绑中的 Tests/Controller 目录,另一个只包含该模式。

这是其他人都关心的问题吗?您有什么答案?有没有其他人同意我的看法,如果可能的话,Symfony2 应用程序中的单元测试和功能测试应该在理想情况下默认隔离?

【问题讨论】:

    标签: php testing symfony


    【解决方案1】:

    通常人们使用不同的工具进行单元和验收/功能测试:PHPUnit 用于前者,Behat 用于后者。使用 Behat,您将在 Features 命名空间中进行测试,并使用 app/console -e=test behat 命令运行它们,而 PHPUnit 使用 phpunit 命令运行它们。 FOSCommentBundle 就是一个例子。

    如果您不想为此使用 Behat,我看到有人建议将 Tests 命名空间用于单元测试,将 Test 命名空间用于功能测试。

    【讨论】:

    • 谢谢。那么,Behat 现在是 Symfony2 中功能测试的事实标准了吗?我可以开始使用它,但当然它不能解决问题,即存储测试的标准约定,可能包括 WebTestCase 的子类(即功能测试),不会在单元和功能之间消除歧义。
    • 如果您使用 Behat,您将停止使用 WebTestCase 并改用 Behat & Mink 进行验收/功能测试。这样你的 Tests 命名空间将只有单元测试。
    • 我明白了。 :) 我只是想知道社区是否已经开始使用 Behat/Mink 而不是 WebTestCase,因为只要 WebTestCase 在框架中,并且被记录为进行功能测试的方式(甚至如果我们知道您可以使用 BDD 框架作为替代方案),并且没有自动隔离测试套件,这对我来说似乎很糟糕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多