cake3でcontrollerを持つpluginをテストする時にありがちなエラー

その1、Fatal error: Class 'App\Controller\AppController' not found in

  • 原因1

そもそもモック用?基底?のコントローラがない

  • 対応

tests/test_app/src/Controller/AppController.php に以下のようなモック用?基底?のコントローラを設置

<?php
namespace App\Controller;

use Cake\Controller\Controller;

class AppController extends Controller
{

}
  • 原因2

tests/test_app/src/Controller/AppController.php がロードされていない

  • 対応

composer.json の開発用の autloader に基底コントローラを追加する

例)

{
  "autoload-dev": {
    "psr-4": {
      "YourPlugin\\Test\\": "tests",
      "App\\": "tests/test_app/src/",
      "Cake\\Test\\": "vendor/cakephp/cakephp/tests"
    }
  }
}

その2、Error/error500.ctp

  • 原因

test_app などに適切な場所に Template/Error/error500.ctp がない

  • 対策

適切な場所に Template/Error/error500.ctp を設置