Просто для записи, я думаю, это конкретный кусок кода, на который вы ссылаетесь:
class ControllerTestCase extends Zend_Test_PHPUnit_ControllerTestCase
{
public $application;
public function setUp()
{
$this->application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/config/settings.ini'
);
$this->bootstrap = array($this, 'bootstrap');
parent::setUp();
}
public function tearDown()
{
Zend_Controller_Front::getInstance()->resetInstance();
$this->resetRequest();
$this->resetResponse();
$this->request->setPost(array());
$this->request->setQuery(array());
}
public function bootstrap()
{
$this->application->bootstrap();
}
}
В модульном тестировании методы setUp
и tearDown
используются для
установить мир в известном состоянии и
затем верните его в исходное состояние
когда тест завершен. Это известное состояние называется приспособлением теста.
Способ работы с приборами в библиотеках xUnit может отличаться, но концепция остается неизменной. См. Также главу fixtures в руководстве по PHPUnit:
PHPUnit поддерживает совместное использование настроек
код. Перед запуском тестового метода
метод шаблона с именем setUp ()
вызывается. setUp () - это место, где вы создаете
объекты, против которых вы будете
тестовое задание. После того, как метод испытания
закончили бегать, удалось ли
или не удалось, другой метод шаблона
Вызывается tearDown ().
tearDown () - это место, где вы очищаете
объекты, против которых вы проверяли.
Следовательно, PHPUnit заботится о выполнении метода setUp
перед каждым единственным тестовым методом, включенным в класс тестового примера, тогда как tearDown
обрабатывается после каждого выполнения.
С учетом вышесказанного Zend Framework предоставляет дополнительный слой поверх PHPUnit для выполнения функциональных тестов , то есть тестов в «черных коробках» для функций, а не для отдельных блоков исходного кода. Это достигается за счет расширения Zend_Test_PHPUnit_ControllerTestCase, чтобы обеспечить доступ к ресурсам приложения.
В этом конкретном примере приложение загружается перед выполнением каждого теста в тестовом примере. Это имеет смысл, если принять во внимание, что нам не нужны ресурсы приложения везде, как, например, в необработанных модульных тестах (часть других тестовых случаев).