php - 在特质中表现上下文

标签 php bdd autoload behat

基础Behat用例推荐使用 FeatureContext 类。此外,您可以在 features/bootstrap 目录中指定任何其他 PHP 类并加载它们,但无论依赖项是什么,都按字母顺序加载。

假设有一个特征和一个 FeatureContext 类:

features/bootstrap/FeatureContext.php
features/bootstrap/MyLovelyTrait.php

正确加载它的最佳方法是什么?显然,在 FeatureContext 中使用了 MyLovelyTrait:

class FeatureContext extends BehatContext {
    use MyLovelyTrait;
}

这失败了,因为 M > F,在字母表中。

我很乐意使用 composer 自动加载,但我不想 require_once BehatContext.php< 顶部的 autoload.php 文件 文件。有没有办法在 behat.yml 配置中指定它?此外,任何其他有关 Behat 上下文文件类加载的最佳实践答案将不胜感激。

最佳答案

我不是 100% 确定这会回答您的问题,但我的印象是您正在尝试使用多个上下文文件?如果是这样,您不需要在 FeatureContext.php 构造方法中使用 use 语句,我们使用以下行:

$this -> useContext('Subcontext', new Subcontext($parameters));

在这种情况下,您要使用的其他上下文称为“子上下文”。

关于php - 在特质中表现上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22199514/

相关文章:

php - 如何在 php 中使用 curl 通过 mongolab rest api 创建 Web 服务以进行基本数据库操作?

php - Mysql NULL字段和php isset?

javascript - Jasmine 无法触发点击事件

ruby-on-rails - 无法自动加载常量,期望 FILEPATH 定义它 - 换句话说,是吧?

php - 不使用 psr0 和 psr4 自动加载的文件的 Composer (symfony 项目)

php - 优化此 SQL 查询的最佳方法是什么?

java - 我的 java applet 如何使用我的 PHP 认证 session ?

testing - RSpec 功能测试重定向到错误的地方

testing - 如何在 Karate DSL 中操作 xml 文件的变量?

PowerShell,按需从互联网自动加载功能