CakePHP Самый простой помощник - PullRequest
0 голосов
/ 08 апреля 2011

Я новичок в модульном тестировании и создаю новые тесты компонентов, контроллеров и моделей с использованием SimpleTest.Я использую CakePHP Test Suite версии 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();
        }

}

И ошибка, которую я получаю:

Fatal error: Call to a member function read() on a non-object.

Мне интересно, еслиМне нужно создать макет.Я новичок во всем этом, поэтому любая информация будет очень цениться!Спасибо!

Ответы [ 2 ]

1 голос
/ 09 апреля 2011

Ошибка вызвана SessionHelper, поскольку она не создается автоматически. Вы должны создать его вручную в методе startTest():

function startTest() {
    $this->MyHelper = new MyHelper();
    $this->MyHelper->Session = new SessionHelper();
}
0 голосов
/ 03 февраля 2014

После создания экземпляра вашего класса вручную, вы должны использовать constructClasses() для загрузки всех ваших компонентов.

$Class = new ClassController();
$Class->constructClasses();
...