【问题标题】:selenium vs phpunit/lime? [closed]硒与 phpunit/石灰? [关闭]
【发布时间】:2011-02-16 04:49:24
【问题描述】:

我已经看到了Selenium 的强大功能,它可以为您提供不同语言的测试。

所以问题是,当像 Selenium 这样的解决方案可用时,我为什么要使用 PHPUnitLime(对于 Symfony)?

如果你可以使用Selenium,手动编写所有测试不是很耗时吗?

【问题讨论】:

    标签: selenium phpunit


    【解决方案1】:

    phpunit 和 selenium 不测试相同的东西 phpunit 测试一个代码单元 selenium 是为一起测试几个模块的集成/功能测试而设计的。

    我认为您需要两种类型的测试。 phpunit 用于单元测试和 selenium 用于接口测试。 phpunit 手册甚至解释了如何将两者结合起来。

    http://www.phpunit.de/manual/3.6/en/selenium.html

    本文还解释了两者的目的。 http://software-testing-zone.blogspot.com/2007/01/unit-testing-versus-functional-tests.html

    我理解将 selenium 用于一切看起来如此简单的愿望,您只需单击并编写一个测试,但这确实是一个需要两者的情况。您可能需要一份“专家 PHP 5 工具”的副本

    http://www.amazon.com/Expert-PHP-Tools-Dirk-Merkel/dp/1847198384/ref=sr_1_1?ie=UTF8&s=books&qid=1273111115&sr=8-1

    它很好地涵盖了不同类型的测试及其使用。

    【讨论】:

    • 所以phpunit不做功能测试?石灰两者兼而有之。你会说使用 selenium 进行功能测试比使用石灰和/或 phpunit 更好吗?因为显然你不必编写代码来测试,你只需要测试这似乎可以节省很多时间。
    • 你也可以在phpunit中做功能测试。它可以在石灰中进行相同的功能测试......但如果我记得没有内置 Web 客户端,因此您将不得不使用类似 sfTestBrowser/sfWebBrowserPlugin 或 Zend_Http_Client 之类的东西。但是 Selenium 不会为您构建单元测试,我认为(我从未使用过它)
    • 不,它不构建单元测试,功能测试不能替代单元测试,单元测试也不能替代功能测试——这就是我的全部观点。
    • 好吧,底线:phpunit/lime 用于单元测试,selenium 用于功能测试,对吧?因为我的观点是,当你可以使用 selenium 并且它支持 javascript 时,没有必要使用 phpunit/lime 进行功能测试。
    • 我陷入了同样的境地,而我也陷入了同样的问题。我的意见什么时候使用 PHPUnit- 如果有人开发了一个小的登录脚本,那么如果 UI 还没有准备好,他将如何测试它,那么答案可能是单元测试。此外,您必须热情地编写代码。因为尽管 PHPUnit 为您的框架创建骨架,但您必须为 MVC 框架编写代码,因为许多函数使用 $_POST 或 $_GET 作为参数。那么 PHPUNI 可以为 MVC Selenium 提供像 @dataprovider 这样的功能 非常容易进行功能/自动化测试,少写代码并测试你的功能
    【解决方案2】:

    在 sf+lime 的情况下,直接在框架中进行了一些很好的集成。 Lime 非常简单,以至于编写测试几乎不需要时间。我个人更喜欢 phpunit,但是当我使用 symfony 时,我只是坚持使用石灰,因为它是阻力最小的路径并且可以加快速度。有/曾经有一个用于 sf 的 php 单元插件,但我从未使用过它 - 我想为什么要打扰。现在对于其他非科幻项目,我在需要时使用 phpunit,因为它并不比连接石灰更难。

    【讨论】:

    • 您使用的是lime的功能测试还是selenium?当 selenium 可以“点击并运行”并节省大量时间时,为什么要使用石灰的功能测试?
    • 在 symfony 项目中,我使用石灰进行所有功能/单元测试。我从未使用过 selenium,但至少在最初创建测试时,我总觉得它是基于 GUI 的工具。我宁愿自己写代码。这比单击一系列事件并记录它们然后将它们输出为一种语言要快。但也许我错了..?同样从我收集的内容来看,它不适用于单元测试(即测试类的整个公共接口)......就像我说的我从未使用过硒。
    • selenium 的另一个优点是它可以与 javascript 一起使用。我猜想用 phpunit/lime 是不可能的。因此对于 Ajax 应用程序,最好使用 selenium 进行功能测试,使用lime/phpunit 进行单元测试。我猜?
    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 2012-09-30
    • 2010-10-17
    • 2012-07-06
    • 2013-03-22
    • 2012-02-24
    • 2015-02-24
    • 1970-01-01
    相关资源
    最近更新 更多