【问题标题】:Cucumber: How to write snippets/step definitions in PHP?Cucumber:如何在 PHP 中编写代码片段/步骤定义?
【发布时间】:2010-10-15 18:20:49
【问题描述】:

我正在尝试让 Cucumber 测试 PHP 应用程序。到目前为止,我只需在我的功能目录中运行 cucumber 即可运行该功能。在结果的底部,它说:

如果您希望 sn-ps 使用不同的编程语言,只需确保一个文件 具有适当文件扩展名的存在于黄瓜查找步骤定义的位置。

这到底是什么意思?我可以在 Ruby 中编写大部分步骤定义,但在某些时候,我需要创建一些设置数据(最好在 PHP 中创建它)。我怎样才能按照这条语句的建议在 PHP 中编写步骤定义?

仅供参考:我也是 Ruby 和 Cucumber 的新手。


解决方案:Cuke4PHP

Cuke4PHP 实现了 Cucumber 有线协议,使得在 PHP 中编写步骤定义成为可能。

【问题讨论】:

  • 你的测试怎么样?模拟浏览器?真正的浏览器?什么操作系统?
  • 不确定用 Cucumber 测试 PHP 应用程序时会发生什么,但我能够让 Selenium 与 webrat 一起工作

标签: php ruby cucumber


【解决方案1】:

如果您没有找到解决方案,这就是我今天找到的!这家伙省去了我使用 PHP 必须做的工作,哈哈

https://github.com/olbrich/cuke4php

他已经为 PHP 实现了wire protocol。简而言之,这是另一个在 Cucumber 找到任何 PHP 步骤时运行 PHP 步骤的服务器。也传回结果。

啊,不用再配置env.rb了。

【讨论】:

    【解决方案2】:

    看看 Behat,Cucumber 的 PHP 版本:http://everzet.com/Behat/

    【讨论】:

    • Behat 看起来不错,但它也需要 PHP 5.3,这对我来说是个大问题。
    【解决方案3】:

    步骤定义存储在 features/step_definitions 中,当 Cucumber 遇到“假设我肚子里有 3 个黄瓜”这样的语句时,它会告诉 Cucumber 该怎么做:

    Given /^I have (\d+) cucumbers in my belly$/ do |cukes|
      # Some Ruby code here
    end
    

    http://github.com/aslakhellesoy/cucumber/wiki/Step-Definitions

    要在 PHP 中编写您的步骤,只需将它们放入 features/step_definitions 并相应地配置您的环境 (features/support/env.rb)。在 Cucumber 文档中以 Cucumber 功能的形式提供了很好的信息:

    http://github.com/aslakhellesoy/cucumber/wiki/php

    快速的 Google 搜索还找到了以下关于使用 Cucumber、Webrat 和 Selenium 进行 PHP 测试的文章,看起来非常有用:

    http://dev.af83.com/testing/acceptance-tests-php-project-cucumber-webrat-selenium-trio/2010/06/03

    其他不直接支持的语言可以使用 Cucumber 的有线协议,例如Clucumber (Common Lisp) 做了什么:

    http://github.com/aslakhellesoy/cucumber/wiki/wire-protocol

    我不做 PHP,但我希望我的回答仍然有帮助。

    【讨论】:

    • 谢谢,但我已经阅读了那些文章。 PHP wiki 页面没有讨论如何设置support/env.rb 以便能够在 PHP 中编写步骤定义,这正是我想要弄清楚的。我找不到任何关于如何用 Ruby 以外的语言编写步骤定义的信息。你知道怎么做吗?
    • PHP wiki 页面有一个示例environment.rb,就在“我将以下内容放入“features/support/env.rb””之后。也许看看 Behat,它是 Cucumber 语言(Gherkin)到 PHP 的一个端口:everzet.com/Behat
    • 感谢 Behat 的链接。不知道 Cucumber 的 PHP 分支。只是希望它不需要 PHP 5.3 来运行。 =/
    猜你喜欢
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多