当前位置: 首页 > 知识库问答 >
问题:

贝哈特与交响乐弯曲

钦高峯
2023-03-14

当我在构造函数内的behat上下文文件中注入服务时,我想将behat与symfonyflex一起使用,autowire不起作用。我需要显式地将服务配置为public,以便在behat中使用该服务。有没有其他方法可以在不公开的情况下在behat上下文文件中注入服务?

在这里,我得到下面的错误"应用\数据消费者"服务或别名已被删除或内联时,容器被编译。您应该将其公开,或者直接停止使用容器,转而使用依赖注入。

behat.yml
   default:
     suites:
       default:
         contexts:
            - FeatureContext:
                 kernel: '@kernel'

            - ImageConsumerContext:
                 dataConsumer: '@App\DataConsumer'

共有1个答案

徐皓君
2023-03-14

更新:

从Symfony4.1开始,允许从测试中获取私有服务。

“默认私有服务”唯一剩下的缺点是测试比以前更加困难。一些开发人员甚至在测试环境中定义了一些配置,以便在测试中公开所有服务。在symfony4.1中,我们也做了同样的测试,现在测试默认允许获取私有服务。

来源:https://symfony.com/blog/new-in-symfony-4-1-simpler-service-testing

您可以仅为您的测试环境公开该服务。

在配置/services_test.yaml中添加:

services:
  ...
  test.App\DataConsumer: '@App\DataConsumer'

然后在你的behat.yml

default:
  suites:
    default:
      contexts:
        - FeatureContext:
          kernel: '@kernel'

        - ImageConsumerContext:
          dataConsumer: '@test.App\DataConsumer'
 类似资料:
  • 我有一个实体,它将从traits中获取其属性(和基本方法): 这是正确的。但是,当我尝试将注释放在

  • 我在AP计算机科学的9年级,我们得到了一个制作游戏的项目。我选择了老师建议的一个简单的气游戏。但我不知道如何在电脑和播放器之间交替旋转。

  • 问题内容: 设置如下: 我有一个客户端的站点设置。客户: 访问该网站 输入我们的记录的基本信息 通过“立即购买”按钮进入贝宝 通过贝宝付款 返回网站 我想知道的是如何获得所有交易的清单?我拥有PayPal登录名以及API用户名,密码和签名,但是对于我来说,我一生中都找不到一个可以在互联网上找到单个位置的示例,该示例说明了如何通过PHP或PHP从PayPal中提取交易列表。 jQuery / Jav

  • 我读到了乐观锁定方案,客户端可以读取值,执行计算,当需要写入时,更新在写入数据库之前经过验证。 假设如果我们为乐观锁采用版本机制,那么(在两个客户端的情况下)两者都将具有更新语句,如下所示: 更新表名称集字段 = val,版本 = 旧版本 1,其中版本 = 旧版本,ID = x; 现在让我们考虑以下两个客户端的场景: > 两个客户端都读取字段和版本的值。 两个客户端都在那里计算一些东西。生成字段的

  • 我这里有一个更聪明的贝尔曼福特版本: 有人能想到一种图,对于这种图,该算法的时间复杂度下限为(V*E),其中V=#顶点,E=#边 我想看看这个陷阱在哪里。

  • Tips 在贝格乐,您的帐户需要具有管理员的权限才能创建Git数据库。如果您的帐户没有管理员的权限,可以委托有此权限的人来创建数据库。友情提示:您可以使用免费方案的贝格乐空间哟。 从这里获取空间 请登录到贝格乐,然后,从创建数据库的项目菜单中点击“Git”。如果您的空间还没有任何项目,请先创建一个项目。 如果页面没有显示“Git”标签,请先激活Git功能。“项目设置” > 在 “Git设置”