2013-09-23 3 views
0

Я пишу модульные тесты в Yii, и мне нужен способ понять, что я в тестовом режиме (для областей по умолчанию и ...). Я определил константу в индексе- test.php. как:YII-модульные тесты, константы в yii

defined('YII_TEST_MODE') or define('YII_TEST_MODE',true); 

в моей модели:

if(YII_TEST_MODE){ ... 

, но в моем коде, когда я проверяю это он показывает эту ошибку:

Use of undefined constant YII_TEST_MODE - assumed 'YII_TEST_MODE' 

Есть ли лучший способ узнать сказать yii вы находитесь в тестовом режиме? и я использую неправильный синтаксис?

ответ

1

Вы хотите быть очень осторожными в использовании кода if (ТЕСТ) в своем коде, цель модульных тестов - проверить фактический код, который будет использоваться для конкретной функции/класса.

Выполнение этого так, как вы, только гарантирует, что код работает в тестовом режиме, а не в реальном режиме, что не соответствует точке.

Если вы следуете парадигме о том, что каждый функциональный класс должен иметь свой собственный набор модульных тестов, а затем издеваться над другими классами, с которыми он взаимодействует, а не выполнять определенные действия в режиме тестирования.

Например, если вы тестируете функциональные возможности своего класса модели и не хотите сохранять данные в базе данных, вы можете вместо этого переманить соединение с базой данных на тот, который фактически не хранит данные.

Если вы заметили свою конфигурационную папку, вы, вероятно, увидите, что у вас есть файл main.php и test.php. Что вы можете сделать, это определить переменную «is_test» следующим образом:

'params'=>array(
    'is_test'=>false 
) 

вы положили, что в вашем main.php, и в вашем test.php вы установите его в действительности. Тогда вы можете проверить Yii::app()->params["is_test"]

+0

очень информативный ответ. Кстати, вы знаете, для чего нужен index-test.php? – tinybyte

+0

Это для функциональных тестов - точнее, тестов на основе селена, которые обеспечивают правильный вывод HTML, они также гарантируют, что разные единицы, которые работают отдельно, правильно интегрируются –

+0

Большое вам спасибо, знаете ли вы хорошее чтение по этому вопросу? Я читал сайт phpunit и yiiframeworks. – tinybyte

0

Я ошибался, думая, что index-test.php работает с модульными тестами, на самом деле /protected/tests/bootstrap.php инициализирует тестовый режим.

, но я до сих пор не знаю, что index-test.php подходит для?

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