rezzza / atoum-bundle
此包已被废弃,不再维护。没有推荐替代包。
围绕 Atoum 单元测试框架的包
dev-master
2012-11-19 09:17 UTC
Requires
- php: >=5.3.3
- symfony/framework-bundle: 2.*
Suggests
- mageekguy/atoum: Use atoum with composer
This package is not auto-updated.
Last update: 2015-09-03 06:48:01 UTC
README
此包提供将 Atoum 单元测试框架(来自 mageekguy)集成到 Symfony2 的(非常)简单的方式。
安装
全部使用 composer 安装
{
"require": {
"jedi/atoum-bundle": "dev-master",
"mageekguy/atoum": "dev-master"
},
"config": {
"bin-dir": "bin"
}
}
Composer & Atoum Phar
{
"require": {
"jedi/atoum-bundle": "dev-master"
}
}
下载 Atoum PHAR 存档。
简单用法
让您的测试类继承包中的 Tests\Units\Test 类。
不要忘记使用您喜欢的加载方式(require, autoload, ...)加载此类
<?php
//if you don't use a bootstrap file, you need to require the autoload
require __DIR__ . '/../../../../../../../vendor/autoload.php';
// use path of the atoum.phar as bello if you don't want to use atoum via composer
//require_once __DIR__ . '/../../../../../vendor/mageekguy.atoum.phar';
use Jedi\AtoumBundle\Tests\Units;
class helloWorld extends Units\Test
{
}
Web 测试用例
您可以轻松创建一个内核环境
<?php
require __DIR__ . '/../../../../../../../vendor/autoload.php';
use Jedi\AtoumBundle\Tests\Units;
class helloWorld extends Units\WebTestCase
{
public function testMyTralala()
{
$client = self::createClient();
}
}
已知问题
- 找不到 AppKernel 的路径,重写
getKernelDirectory方法并将路径添加到您的app目录。
测试控制器
您可以使用 ControllerTest 类(它继承自 WebTestCase)来测试您的控制器。
<?php
namespace vendor\FooBundle\Tests\Controller;
use Jedi\AtoumBundle\Tests\Units\WebTestCase;
use Jedi\AtoumBundle\Tests\Controller\ControllerTest;
class BarController extends ControllerTest
{
//test a json api method
public function testGet()
{
$client = static::createClient();
$crawler = $client->request('GET', '/api/foobar');
$response = $client->getResponse();
$this
->integer($response->getStatusCode())
->isEqualTo(200)
->string($response->headers->get('Content-Type'))
->isEqualTo('application/json')
;
}
}