2015-08-21 2 views
0

У меня есть этот код в моем AppController, который позволяет использовать SSL для приложения только тогда, когда он не находится в режиме отладки.Отключить SSL при модульном тестировании

public function beforeFilter(Event $event) 
    { 


     if (!Configure::read('debug')) { 
      $this->Security->requireSecure(); 
     } 
    } 

Я хочу отключить SSL, когда выполняю тесты uni.

Я попытался определить константу bool в файле начальной загрузки PHPUnit, а затем проверить, действительно ли это в AppController, но, к сожалению, не удается получить доступ к константам, определенным из phpunit/bootstrap за пределами phpunit.

Любые предложения?

+0

'но это, к сожалению, не может получить доступ к константам, определенным из phpunit/bootstrap'- вы тестируете с помощью завитки или что-то в этом роде? Вы, как правило, объясняете это, издеваясь над компонентом безопасности, не изменяя код приложения. Подробнее см. В документах для [testAction] (http://book.cakephp.org/2.0/en/development/testing.html#testing-controllers) или * обновите вопрос *, чтобы выяснить, в чем проблема (например, добавление кода тестового метода). – AD7six

ответ

0

Я нашел ответ сам

В тестах/bootstrap.php я добавил:

define('TEST', true); 

Тогда в AppController:

//Disable validation of post requests 
    $this->Security->Config('validatePost', false); 

    if (!Configure::read('debug') && !defined ('TEST')) { 
     $this->Security->requireSecure(); 
    } 

И это работает для меня.

+0

Почему путём голосования? Вопрос не в том: «Должен ли я отключать SSL при модульном тестировании?», Вопрос: «Отключить SSL при модульном тестировании». Поэтому я предполагаю, что я оценил все эти риски для кода, происходящего в производстве, делегируя это основной структуре ... – radioaktiv

Смежные вопросы