braincrafted/testing-bundle

Symfony2扩展的测试工具

安装次数: 11 766

依赖者: 4

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 1

开放问题: 0

类型:symfony-bundle

v0.4.2 2016-02-15 14:43 UTC

This package is auto-updated.

Last update: 2024-09-20 10:14:04 UTC


README

由维也纳的Florian Eckerstorfer精心打造 Florian Eckerstorfer.

关于

此包目前提供了一个抽象类,以更好地隔离Symfony2应用程序的功能测试。WebTestCase类删除模式,重新创建它并加载所有固定文件。目前DoctrineFixturesBundle是该包的必需依赖。

在某个时候,这个包可能包含与测试相关的其他有用类、服务和辅助工具。

安装

您需要将扩展添加到您的composer.json文件中

{
    "require-dev": {
        "braincrafted/testing-bundle": "@stable"
    }
}

提示:您应该用特定的版本替换@stable

兼容性

TestingBundle是为始终与最新版本的Symfony一起工作而开发的。以下表格有助于您选择正确的TestingBundle版本。

主分支已更新,以兼容Symfony 2.3。如果您使用的是Symfony <2.3,则可以使用0.1分支。

将包添加到您的内核中(仅在开发和测试环境中激活包,您不需要在生产环境中激活它)

// app/AppKernel.php

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        // ...
        if (in_array($this->getEnvironment(), array('dev', 'test'))) {
            $bundles[] = new Braincrafted\Bundle\TestingBundle\BraincraftedTestingBundle($this);
            // ...
        }
        // ...
    }
    // ...
}

用法

您想要隔离的测试用例必须扩展Braincrafted\Bundle\TestingBundle\Test\WebTestCase

// AcmeDemoBundle/Tests/DemoTest.php
namespace AcmeDemoBundle\Tests;

use Braincrafted\Bundle\TestingBundle\Test\WebTestCase;

class DemoTest extends WebTestCase
{
    // ...
}

默认情况下,WebTestCase提供了一个setUp()tearDown()方法,分别启动和关闭内核。但是,如果您的测试用例中有自己的setUp()和/或tearDown()方法,您需要手动执行此操作。

// AcmeDemoBundle/Tests/DemoTest.php
namespace AcmeDemoBundle\Tests;

use Braincrafted\Bundle\TestingBundle\Test\WebTestCase;

class DemoTest extends WebTestCase
{
    public function setUp()
    {
        $this->setUpKernel();
        // ...
    }

    public function tearDown()
    {
        $this->tearDownKernel();
        // ...
    }
}

如果您的测试用例需要客户端,您可以使用createClient()方法

$client = $this->createClient();

createClient()将在此时没有内核可用时调用setUpKernel()

您还可以访问内核的依赖注入容器

$container = $this->getContainer();

渲染Crawler HTML

WebTestCase类还有一个非常有用的辅助方法,可以返回爬虫的HTML代码。您可以在所有继承自Braincrafted\Bundle\TestingBundle\Test\WebTestCase的测试用例中使用它。

echo $this->renderCrawlerHtml($crawler);

测试翻译键

BraincraftedTestingBundle安装了一个替代翻译器,仅在test环境中激活。此翻译器返回翻译键而不是翻译后的文本。这样,您可以在功能测试中使用翻译键而不是翻译后的文本。

变更日志

版本 0.4.2 (2016年2月15日)

  • NoTranslator实现了空的setConfigCacheFactory()方法以提高兼容性

版本 0.4.1 (2015年4月20日)

  • NoTranslator返回消息目录

版本 0.4 (2015年2月6日)

  • 添加了对Symfony 2.6的兼容性

版本 0.3.3 (2015年2月6日)

  • 更新到composer.json以反映0.3分支与Symfony 2.6不兼容

版本 0.3.2 (2014年10月26日)

  • #10 尝试在标准路径中找到AppKernel.php,然后再回退到KERNEL_DIR常量(由florianeckerstorfer提供)

版本 0.3.1 (2014年8月25日)

  • 修复了WebTestCase::createClient()方法的类型提示
  • WebTestCase::createClient()中传递$optionsWebTestCase::createKernel()

版本 0.3 (2013年11月18日)

  • 将命名空间更改为Braincrafted

许可证

MIT许可(MIT)

版权所有(c)2012-2015 弗洛里安·埃克斯特罗费尔

特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人,免费、不可撤销地使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许获得软件的人进行上述操作,但必须遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类责任是基于合同、侵权或其他原因,以及软件的使用或其他方式。