在PHP中使用Cucumber

问题描述 投票:26回答:3

别误会我的意思。我认为这两个项目都很棒。

但是作为php和ruby开发人员,我想知道是否有任何令人信服的理由,除了可能的语言障碍,为什么一个人选择Behat而不是Cucumber(与cuke4php)为BDD甚至在使用php或一些php框架时。

php bdd behat
3个回答
73
投票

我是Behat开发者。

为什么我开发了Behat而不是Cucumber定制:

  1. 速度。从Ruby代码引导/运行PHP没有简单的方法。这意味着您需要实现电线/代理和其他操作,这会使您的测试变得非常慢。较慢的测试不是测试,只是代码会占用客户的钱。
  2. 可扩展性。很少有PHP开发人员真正了解Ruby。这是一个难以使用的工具,很多人都不理解!为Cucumber编写的所有示例都是Ruby代码,您甚至无法查看Cucumber源代码,因为,让我们说,您不了解Ruby。这就像你需要一辆出租车时买一艘潜艇。

在功能方面,Behat和Cucumber几乎相同(我努力实现这一目标)。但是从PHP开发人员的角度来看速度/可扩展性/逻辑方面 - Behat更好,因为它是一个快速而干净的本机PHP工具。 Behat不是黄瓜端口,正如您可能首先想到的那样,它完全是从PHP 5.3开始构建的。 Behat尝试使用其输入读取(功能)和输出格式(格式化程序)来模拟Cucumber,但它不是Cucumber端口(PHP中没有Ruby语法结构)。


2
投票

您可能需要Behat的另一个原因在这里解释:https://cucumber.io/blog/2014/09/10/when-cucumbers-go-bad

如果您有PHP项目,则可能需要为内部测试(域层,应用程序层)创建上下文。


0
投票

我想在这个主题上投入两分钱,并在专业环境中解决各种用例。

如果您正在与主要使用PHP编写的代码库上的其他开发人员合作,那么优势可以归结为您的同事。

如果您的团队在PHP中更加自如,那就是代码库编写的内容以及人们遇到麻烦或者因为上下文切换到不同的编程语言而烦恼(大多数人都是这样根据我的经验)那么最好是适应您的团队和使用贝哈特。人们会少抱怨,并(希望)做得更多。

如果您的团队精通各种语言,并且大多数人在使用Ruby(黄瓜)进行验收测试和将PHP用于其他所有内容之间切换都没有问题,请使用最适合该工作的语言。 Ruby比PHP更具表现力,因此黄瓜可以说是更好的选择。

如果您的团队比Ruby更熟悉PHP,那么请使用Behat。本机兼容性确保表达能力并避免怪异,除了它更快。

© www.soinside.com 2019 - 2024. All rights reserved.