クックブックの指示に従って、機能テスト内で HTTP 認証をシミュレートしました。
config_test.ymlに以下を追加しました:
security:
firewalls:
main:
http_basic:
realm: "Secured Demo Area"
そして、これは私のテストがどのように見えるかです:
class CourseControllerTest extends WebTestCase
{
public function setUp()
{
$this->loadFixtures(array(
'Herudio\Bundle\UserBundle\DataFixtures\ORM\LoadUserData',
'Herudio\Bundle\CourseBundle\DataFixtures\ORM\LoadCategoryData',
'Herudio\Bundle\CourseBundle\DataFixtures\ORM\LoadCourseData',
));
}
public function testListDisplaysAllEntities()
{
$client = static::createClient(array(), array(
'PHP_AUTH_USER' => 'admin',
'PHP_AUTH_PW' => 'admin',
));
$crawler = $client->request('GET', '/courses');
$this->assertCount(1, $crawler->filter('tbody tr'), 'Unexpected entity count for GET /courses/');
}
}
ただし、テストを実行すると、/loginにリダイレクトされます。
User エンティティが正しく作成されていることを確認しました。
注: 認証に FOSUserBundle を使用しています。