私はCakePHP 2.4を使用しています
Storybook という Model クラスがあります。
createDraft というメソッドがあり、そのコードは次のようになります。
public function createDraft($data) {
$data['Storybook']['author'] = AuthComponent::user('id');
CakePHP テストを使用してテスト スクリプトを作成すると、AuthComponent 内でユーザー データをインスタンス化する際に問題が発生します。
私のテストスクリプトは次のようになります。
<?php
App::uses('Storybook', 'Model');
class StorybookTestCase extends CakeTestCase {
/**
* Fixtures
*
* @var array
*/
public $fixtures = array(...
);
/**
* setUp method
*
* @return void
*/
public function setUp() {
parent::setUp();
$this->Storybook = ClassRegistry::init('Storybook');
...
...
/**
* GIVEN we have only a title
* WHEN we call createDraft
* THEN we have a new draft
*
* @return void
*/
public function testCreateDraftSuccessfully() {
// GIVEN only a title
$data = array('Storybook' => array('title' => 'some title'));
// WHEN we call the createDraft
$actualResult = $this->Storybook->createDraft($data);
....
createDraft メソッドでテストが失敗しました。
AuthComponent ログイン メソッドは静的ではないため、setUp メソッドで AuthComponent にユーザー データを入力できません。
お知らせ下さい。