phpunitを使用してコンポーネントのテストをしたいと考えています。
php
1namespace App\Controller\Component ; 2use Cake\Controller\Component ; 3 4class hogeComponent extends Component 5{ 6 /** 7 * コンストラクタ 8 */ 9 public function __construct($request, $response) 10 { 11 parent::__construct($request, $response) ; 12 } 13}
上のようなコンストラクタを設定したコンポーネントのテストを想定しています。
php
1namespace App\Test\TestCase\Controller\Component; 2 3use App\Controller\Component\hogeComponent; 4use Cake\Controller\Controller; 5use Cake\Controller\ComponentRegistry; 6use Cake\Http\ServerRequest; 7use Cake\Http\Response; 8use Cake\TestSuite\IntegrationTestCase; 9 10class hogeComponentTest extends IntegrationTestCase 11{ 12 private $hoge = null; 13 14 public function setUp() 15 { 16 parent::setUp(); 17 $request = new ServerRequest(); 18 $response = new Response(); 19 $this->controller = $this->getMockBuilder('Cake\Controller\Controller') 20 ->setConstructorArgs([$request, $response]) 21 ->setMethods(null) 22 ->getMock(); 23 $registry = new ComponentRegistry($this->controller); 24 $this->hoge = new hoge($registry); 25 } 26 27 /** 28 * テストケース1 29 * 30 * @return void 31 */ 32 public function testCase1() 33 { 34 } 35} 36
上記のようにテストケースを書きテストを実行したところ以下のようなエラーが出ました。
ArgumentCountError: Too few arguments to function App\Controller\Component\hogeComponent::__construct(), 1 passed in
テストスクリプトのコンポーネントの引数が足りないのは分かるのですがどういった物を追加すれば良いのかわからない状態です。
何を追加すれば良いのでしょうか?
環境は
・windows環境でxampp使用
・PHPは7.1.9
・cakephpのバージョンは3.5.1
・phpunitは6.4.3
です。
回答1件
あなたの回答
tips
プレビュー