本文演示了PHP中使用Behat进行行为驱动的发展(BDD)。它涵盖设置Behat,编写小黄瓜功能文件,创建具有PHP步骤定义的上下文文件以及运行测试。本文凸显了贝塔特的advan

如何在PHP中使用Behat进行行为驱动的发展(BDD)?
设置Behat:
首先,您需要安装Behat。最简单的方法是使用作曲家:
1 | <code class = "bash" >composer require behat/behat</code>
|
登录后复制
这安装了Core Behat库。接下来,您需要在项目的根目录中创建behat.yml
配置文件。此文件指定您的功能文件和上下文的位置。一个基本示例:
1 | <code class = "yaml" > default : suites: default : paths: features: features/ contexts: features/bootstrap/</code>
|
登录后复制
这种配置告诉Behat在features
目录和上下文文件(包含您的步骤定义)中查找features/bootstrap
中的功能文件。
写功能文件:
功能文件用小黄瓜(一种简单,可读的语言)编写。他们从用户的角度描述了系统的行为。一个简单的例子:
1 | <code class = "gherkin" >Feature: User Login Scenario: Successful login Given I am on the login page When I enter "testuser" as username and "password" as password And I press "Login" Then I should be on the homepage</code>
|
登录后复制
创建上下文文件:
上下文文件包含定义功能文件中的步骤的代码。这些步骤使用PHP与您的应用程序进行交互并验证预期的行为。对于上面的示例,您需要创建一个上下文文件(例如, FeatureContext.php
)并定义步骤:
1 | <code class = "php" ><?php use Behat\Behat\Context\Context; use Behat\Gherkin\Node\PyStringNode; use Behat\Behat\Tester\Exception\PendingException; class FeatureContext implements Context { public function iAmOnTheLoginPage() {
|
登录后复制
运行behat:
定义了功能文件和上下文文件后,您可以从命令行运行:
1 | <code class = "bash" >vendor/bin/behat</code>
|
登录后复制
Behat将执行您的方案并报告结果。
在PHP项目中使用Behat用于BDD的主要优点是什么?
-
改进的协作: BDD促进了开发人员,测试人员和业务利益相关者之间的合作。 Gherkin的可读性可确保每个人都了解系统的要求。
-
生活文档:功能文件用作生活文档,始终反映当前的系统行为。这减少了文档和代码之间的差异。
-
早期错误检测:通过在开发过程的早期定义接受标准,Behat有助于在成为主要问题之前识别和解决错误。
-
自动测试: Behat自动执行接受测试,节省了与手动测试相比的时间和资源。
-
可测试的代码: BDD鼓励编写清洁的模块化代码,该代码易于测试。
如何将Behat与其他PHP测试框架或工具集成?
Behat可以与各种PHP工具和框架集成:
-
硒:对于测试Web应用程序,可以将Behat与Selenium集成以使浏览器交互自动化。这允许端到端的测试方案。
- Mink: Mink是一个Behat Extension,可在不同的驱动程序(硒,goutte等)上提供一层抽象,从而更容易在它们之间切换。
- phpunit:虽然Behat专注于接受测试,但Phpunit非常适合单位和集成测试。您可以两者都可以实现全面的测试覆盖范围。 Behat的步骤可以在情况下调用PHPUNIT测试以进行更多颗粒状测试。
- CodeCeption:类似于Phpunit,CodeCeption提供了一个全面的测试框架。它可以与Behat一起用于不同的测试水平。集成可能涉及自定义扩展或共享辅助功能。
集成通常涉及通过作曲家安装其他Behat扩展名,并将其配置在您的behat.yml
文件中。
您可以提供对PHP应用程序中BDD特别有用的现实情况的示例吗?
-
电子商务网站:测试结帐过程,确保用户可以将项目添加到购物车中,继续结帐并成功完成购买。方案可以涵盖不同的付款方式和地址验证。
- CRM系统:测试用户身份验证,联系人管理和报告生成。 Behat可以验证用户可以根据其角色和权限访问正确的数据。
-
内容管理系统(CMS):测试内容创建,编辑和发布工作流程。方案可以涵盖不同的用户角色和内容类型。
-
社交媒体平台:测试用户注册,发布,评论和喜欢功能。 Behat可以确保平台正确处理用户交互并维护数据完整性。
- API驱动的应用程序:测试API端点,以确保它们返回预期数据并处理各种输入方案。 Behat以及像Guzzle这样的工具可以与API进行交互并验证响应。这允许独立于用户界面测试后端逻辑。
在每种情况下,Behat有助于定义明确的接受标准,自动测试,并确保申请满足业务需求。从用户的角度来看,重点仍然放在系统的行为上,从而更容易在团队之间进行交流和验证功能。
以上是如何在PHP中使用Behat进行行为驱动的发展(BDD)?的详细内容。更多信息请关注PHP中文网其他相关文章!