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

Codeception 2.2 api一起测试ZF2和PhpBrowser模块

澹台玉石
2023-03-14

代码欺骗API测试人员需要PhpBrowser模块,我想使用ZF2模块,因为我需要从ServiceManager检索一些服务。

在将Codecpse更新到2.2之后,它会抛出此异常:

[Codeception\Exception\ModuleConflictException]ZF2模块与PhpBrowser冲突

有没有什么方法可以在代码欺骗2.2中一起启用ZF2和PhpBrowser?

共有2个答案

宰父跃
2023-03-14

谢谢你的回答。

有一些改进的工作代码:

<?php
namespace Helper;

use Codeception\Lib\Interfaces\DependsOnModule;

class Zf2Helper extends \Codeception\Module implements DependsOnModule
{

    protected $dependencyMessage = <<<EOF
Example configuring ZF2Helper as proxy for ZF2 module method grabServiceFromContainer.
--
modules:
    enabled:
        - \Helper\ZF2Helper:
            depends: ZF2
--
EOF;

    private $zf2;

    public function _inject(\Codeception\Module\ZF2 $zf2)
    {
        $this->zf2 = $zf2;
    }

    public function _depends()
    {
        return ['Codeception\Lib\ZF2' => $this->dependencyMessage];
    }

    public function grabServiceFromContainer($service)
    {
        return $this->zf2->grabServiceFromContainer($service);
    }
}
刘明朗
2023-03-14

如果您有充分的理由在与PhpBrowser相同的套件中使用ZF2,则可以创建自己的帮助器类并作为依赖项加载ZF2模块。

配置:

modules:
    enabled:
        - PhpBrowser:
            url: http://localhost/
        - \Helper\Zf2Helper:
            depends: ZF2

Codetests/_-support/Helper/zf2-Helper.php

<?php
namespace Helper;

class Zf2Helper extends \Codeception\Module
{

  private $zf2;

  public function _inject(\Codeception\Module\ZF2 $zf2)
  {
     $this->zf2 = $zf2;
  }

  public function doSomethingWithZf2
  {
     $this->zf2->doSomething();
  }
}

更新:

自Codeception 2.2.2发布以来,可以加载ZF2的服务部分,该部分支持grabServiceFromContainer方法。

配置:

modules:
    enabled:
        - PhpBrowser:
            url: http://localhost/
        - ZF2
            part: services
 类似资料:
  • 我得堆栈: 想法2019.1.3 Springboot 2.1.6 Java 11 Maven 3.8.0 Groovy 2.5 史巴克1.3 JUnit jupiter 5.5.1 JUnit vintage 5.5.1 GMavenPlus插件2.7.1 我们想开始在Spock测试框架中编写测试。我跟着这个howto,但没有成功。当我尝试运行所有测试时,我的spock测试没有运行。 我能运行一

  • 只启动jUnit测试和集成测试。从不执行。 下面是Maven输出的一部分: 我在StackOverflow上发现了几乎相同或相似的问题,但在我的项目中没有一个响应起作用。 null

  • @ptrthomas-我能够在空手道中分别进行API测试和性能测试。但当我试图在同一个框架中合并两者时,它们中的任何一个都停止了工作。 我可以在这里看到的原因空手道核心是空手道朱尼特和空手道阿帕奇的子依赖性。但是他们都安装了不同版本的空手道核心。因此,要么必须排除其中一个。但是无论你把它排除在哪里,它都会停止工作。如果您从空手道-Junit4中排除它,那么API测试将不起作用,如果您从空手道-ap

  • 英文原文:http://emberjs.com/guides/testing/testing-models/ 单元测试方案和计算属性与之前单元测试基础中说明的相同,因为DS.Model集成自Ember.Object。 [Ember Data[模型可以使用moduleForModel助手来测试。 假定有一个Player模型,模型定义了level和levelName属性。通过调用levelUp可以增加

  • 我如何从两个或多个IDEA模块同时运行所有测试? 我使用了许多模块,经常运行所有的单元测试是很重要的,当我选择多个文件夹运行时,上下文菜单上不再有“运行”选项。

  • 我使用PHP-cURL(在WP-Plugin中)从我的ZF2应用程序获取JSON响应。 我有两个要求。 OAuth 第一个工作正常,我只是把json_encoded数组拿回来。但是当我发送GET请求时,响应看起来像(一切都是本地的): 插件。php:16:string'HTTP/1.1 200 OK Date:Fri,2016年11月18日13:14:20 GMT服务器:Apache/2.4.23