2

我写了一个响应监听器来绕过一些特定的内容类型,我想知道对它进行单元测试的最佳方法是什么。

你对我怎么能做到这一点有任何线索吗?

我需要创建控制器夹具来测试吗?

单元测试套件中是否允许进行功能测试?

4

3 回答 3

1

为听众编写单元测试相当简单。您只需要模拟您的侦听器所依赖的对象。在 Symfony 源代码中查找示例测试。

另一种方法可能是编写功能测试

于 2012-06-16T20:37:08.693 回答
1

你可以使用这个。

            $logger = $this->client->getContainer()->get('logger');
            $logger->info("data->" . $response->headers->get("Location"));
于 2015-01-02T03:49:09.543 回答
1

从文档中,这是一个单元测试:

// src/Acme/DemoBundle/Tests/Utility/CalculatorTest.php
namespace Acme\DemoBundle\Tests\Utility;

use Acme\DemoBundle\Utility\Calculator;

    class CalculatorTest extends \PHPUnit_Framework_TestCase
    {
        public function testAdd()
        {
            $calc = new Calculator();
            $result = $calc->add(30, 12);

            // assert that your calculator added the numbers correctly!
            $this->assertEquals(42, $result);
        }
    }

这是一个功能测试:

// src/Acme/DemoBundle/Tests/Controller/DemoControllerTest.php
namespace Acme\DemoBundle\Tests\Controller;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class DemoControllerTest extends WebTestCase
{
    public function testIndex()
    {
        $client = static::createClient();

        $crawler = $client->request('GET', '/demo/hello/Fabien');

        $this->assertGreaterThan(
            0,
            $crawler->filter('html:contains("Hello Fabien")')->count()
        );
    }
}

请记住,功能测试无法测试 Ajax 等,因此最好使用功能浏览器测试框架来测试重型 Ajax 站点。

祝你好运

于 2013-08-28T03:50:27.103 回答