设置Behat:
首先,您需要安装Behat。最简单的方法是使用作曲家:
<code class="“" bash>作曲家需要behat/behat </code>
这安装了Core Behat库。接下来,您需要在项目的根目录中创建 behat.yml
配置文件。此文件指定您的功能文件和上下文的位置。一个基本示例:
<code class="“" yaml>默认值:套房:套房:default:paths:功能:功能/上下文:功能/bootstrap/bootstrap/ </code>
此配置告诉您请在 featire
Directory and Contect Files and spep Filess(包含您的步骤定义)中查找功能文件( 功能/bootstrap
。
编写功能文件:
功能文件用Gherkin编写,这是一种简单,可读的语言。他们从用户的角度描述了系统的行为。一个简单的示例:
<code class="“" gherkin>功能:用户登录方案:成功登录给定的我在登录页面上,当我输入“ testuser”时作为用户名和“密码”作为密码,我按“登录”然后,我应该在主页上</code>
创建上下文文件:
上下文文件包含定义您功能文件中的步骤的代码。这些步骤使用PHP与您的应用程序进行交互并验证预期的行为。对于上面的示例,您需要创建一个上下文文件(例如 farmaurecontext.php
),并定义步骤:
<pre class="brush:php;toolbar:false"> <code class="“" php>&lt;?php php php behat behat behat \ behat \ behat \ contect \ contect \ contect \ contect \ contect \ contect \ contect \ contect \ contect \ contect;使用behat \ gherkin \ node \ pystringNode;使用Behat \ behat \ tester \ exception \ pendingException; class FeatureContext implements Context { /** * @Given I am on the login page */ public function iAmOnTheLoginPage() { // Code to navigate to the login page } /** * @When I enter :username as username and :password as password */ public function iEnterAsUsernameAndAsPassword($username, $password) { // Code to fill in the username and password fields } // ...其他步骤定义...} </code>
运行behat:
一旦您定义了功能文件和上下文文件,就可以从命令行中运行:
<pre class="brush:php;toolbar:false"> <pre class="brush:php;toolbar:false"> <pre class="brush:php;toolbar:false"> <code class="“" bash> vendor/bash“> vendor/bin/bin bin/bin bin/bean> 结果。 <h2>在PHP项目中使用Behat用于BDD的主要优点是什么?</h2> <ul> <li> </li> <li> <strong>改进的协作:</strong> bdd促进了开发人员,测试人员和商业利益相关者之间的协作。 Gherkin的可读性确保每个人都了解系统的要求。</li> <li> <strong>生活文档:</strong>功能文件用作生活文档,始终反映当前的系统行为。这减少了文档和代码之间的差异。</li> <li> <strong>早期错误检测:</strong>通过在开发过程的早期定义接受标准,Behat有助于识别和解决错误。</li> <li> </li> <li> </li> <li> <strong>自动化测试:</strong> behat behat自动执行了徒手的时间和人工资源,并将其执行。测试。</li> <li> <strong>可测试的代码:</strong> bdd鼓励编写清洁的模块化代码,更易于测试。</li> </ul> <h2>如何与其他PHP测试框架或工具集成在一起?</h2> <pp> <pp>可以将各种php工具和强度集成到php <pp>应用程序,Behat可以与Selenium集成以使浏览器相互作用自动化。 This allows for end-to-end testing scenarios.<li> <strong>Mink:</strong> Mink is a Behat extension that provides a layer of abstraction over different drivers (Selenium, Goutte, etc.), making it easier to switch between them.</li><li> <strong>PHPUnit:</strong> While Behat focuses on acceptance tests, PHPUnit is excellent for unit and integration tests.您可以两者都可以实现全面的测试覆盖范围。 Behat的步骤可以在方案中调用Phpunit测试以进行更颗粒的测试。</li> <li> </li><li> <strong> codeception:</strong>与phpunit相似,CodeCeption提供了一个全面的测试框架。它可以与Behat一起用于不同的测试水平。集成可能涉及自定义扩展或共享的助手功能。</li> <p>集成通常涉及通过Composer安装其他Behat扩展,并将其配置在您的<code> Behat.yml </code> file。应用程序? </p><ul> <ul> <li> <strong>电子商务网站:</strong>测试结帐过程,确保用户可以将物品添加到购物车中,继续结帐并成功完成购买。方案可以涵盖不同的付款方式和地址验证。</li> <li> <strong> CRM系统:</strong>测试用户身份验证,联系人管理和报告生成。 Behat可以验证用户可以根据其角色和权限访问正确的数据。</li> <li> <strong>内容管理系统(CMS):</strong>测试内容创建,编辑和发布工作流程。方案可以涵盖不同的用户角色和内容类型。</li> <li> <strong>社交媒体平台:</strong>测试用户注册,发布,评论和喜欢功能。 Behat可以确保平台正确处理用户交互并维护数据完整性。</li> <li> <strong> API驱动的应用程序:</strong>测试API端点,以确保它们返回预期的数据并处理各种输入方案。 Behat以及像Guzzle这样的工具可以与API进行交互并验证响应。这允许独立于用户界面来测试后端逻辑。</li> </ul> <p>在这些情况下,Behat有助于定义清晰的接受标准,自动化测试,并确保应用程序满足业务需求。从用户的角度来看,重点仍然放在系统的行为上,使得更容易在团队之间进行验证和验证功能。</p> </ul></pp></pp></pp></code>
以上是如何在PHP中使用Behat进行行为驱动的发展(BDD)?的详细内容。更多信息请关注PHP中文网其他相关文章!