0

私は単体テストに不慣れで、SimpleTestを使用して新しいコンポーネント、コントローラー、およびモデルのテストを作成しています。CakePHPTestSuiteバージョン1.2.0.0を使用しています。ヘルパーのビューを作成するのに問題があり、インターネットからは何の助けも得られませんでした。ヘルパーコードは次のとおりです。

class MyHelper extends AppHelper
{
        var $helpers = array('Session');

        function dostuff()
        {
                $helpervar = $this->Session->read('Data');
                if(empty($helpervar))
                {
                        return;
                }
        }
}

そして私のテストコードはここにあります:

App::import('Helper', 'MyHelper');


class MyHelperTest extends CakeTestCase {

        function startTest() {
                $this->MyHelper = new MyHelperHelper();
        }

        function testRender() {
                $this->MyHelper->dostuff();
        }

        function tearDown() {
                unset($this->Controller);
                ClassRegistry::flush();
        }

}

そして私が受け取るエラー:

致命的なエラー:非オブジェクトのメンバー関数read()を呼び出します。

モックビューを作成する必要があるかどうか疑問に思っています。私はこれらすべてに不慣れなので、どんな情報でも大歓迎です!ありがとう!

4

2 に答える 2

1

このエラーは、SessionHelper自動的にインスタンス化されないために発生します。startTest()次の方法で手動でインスタンス化する必要があります。

function startTest() {
    $this->MyHelper = new MyHelper();
    $this->MyHelper->Session = new SessionHelper();
}
于 2011-04-09T05:32:53.907 に答える
0

クラスのインスタンスを手動で作成した後、constructClasses()すべてのコンポーネントをロードするために使用する必要があります。

$Class = new ClassController();
$Class->constructClasses();
于 2014-02-03T16:04:25.127 に答える