2

特定のコンテンツタイプをバイパスする応答リスナーを作成しましたが、UnitTestを実行するための最良の方法は何でしょうか。

私がそれをどのように行うことができるかについて何か手がかりがありますか?

テストするコントローラーフィクスチャを作成する必要がありますか?

ユニットテストスイート内で機能テストは許可されていますか?

4

3 に答える 3

1

リスナーの単体テストの作成はかなり簡単です。リスナーが依存するオブジェクトをモックする必要があります。Symfonyソースコードのテスト例を探してください。

別の方法は、機能テストを書くことかもしれません。

于 2012-06-16T20:37:08.693 に答える
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 に答える
1

これを使用できます。

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