Cake3、コンポーネントのテストの覚書

Component のテスト

  • テストしたい Component をもつ Controller を用意

tests/TestApp/Controller/PostsController.php

<?php
namespace TestApp\Controller;

use Cake\Controller\Controller;

class PostsController extends Controller
{
    /**
     * @var array
     */
    public $components = ['YourAwesomeComponent'];
}
  • テストで、そのコントローラのインスタンスを作って、Controller#startupProcess() を呼ぶ

tests/TestCase

    /**
     * @return void
     */
    public function setUp()
    {
        parent::setUp();

        $this->Controller = new PostTestController(new Request());
        $this->Controller->startupProcess();
    }
  • $this->Controller->YourAwesome でコンポーネントにアクセスできるので、あとはテストを書くだけ