CakePHP Simpletest помощник

Я новичок в модульном тестировании и создаю новые тесты компонентов, контроллеров и моделей с помощью 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.

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


person ethan.thomason    schedule 08.04.2011    source источник


Ответы (2)


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

function startTest() {
    $this->MyHelper = new MyHelper();
    $this->MyHelper->Session = new SessionHelper();
}
person dhofstet    schedule 09.04.2011

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

$Class = new ClassController();
$Class->constructClasses();
person Anil    schedule 03.02.2014