Важные методы для проведения Тестов.
PHPUnit запускает свои тесты по определенному принципу.
1) Он берет тестируемый класс и производит статический метод setUpBeforeClass().
Если вы например в каждом тест-методе вашего класса нуждаетесь в какой то инициализации (например конекция с БД.) то делайте эти инициализации переписывая этот метод. Не забывайте, что метод статически и может по этому работать только с статическими переменными.
2) Теперь PHPUnit начинает обрабатывать каждый тест класса, но вызывает перед каждым тестом метод setUp(), а после теста метод tearDown(). Таким образом переписав эти методы вы можете произвести настройки перед тестом и после теста.
3) Когда все тесты класса прошли вызывается статический метод tearDownAfterClass. Переписав этот метод вы можете к примеру привести систему в первоначальное состояние.
Пример из Документации к PHPUnit (http://www.phpunit.de/manual/current/en/fixtures.html):
<?php
class TemplateMethodsTest extends PHPUnit_Framework_TestCase
{
public static function setUpBeforeClass()
{
fwrite(STDOUT, __METHOD__ . "\n");
}
protected function setUp()
{
fwrite(STDOUT, __METHOD__ . "\n");
}
protected function assertPreConditions()
{
fwrite(STDOUT, __METHOD__ . "\n");
}
public function testOne()
{
fwrite(STDOUT, __METHOD__ . "\n");
$this->assertTrue(TRUE);
}
public function testTwo()
{
fwrite(STDOUT, __METHOD__ . "\n");
$this->assertTrue(FALSE);
}
protected function assertPostConditions()
{
fwrite(STDOUT, __METHOD__ . "\n");
}
protected function tearDown()
{
fwrite(STDOUT, __METHOD__ . "\n");
}
public static function tearDownAfterClass()
{
fwrite(STDOUT, __METHOD__ . "\n");
}
protected function onNotSuccessfulTest(Exception $e)
{
fwrite(STDOUT, __METHOD__ . "\n");
throw $e;
}
}
Теперь видно, последовательность вызова методов.
phpunit TemplateMethodsTest
PHPUnit 3.7.0 by Sebastian Bergmann.
TemplateMethodsTest::setUpBeforeClass
TemplateMethodsTest::setUp
TemplateMethodsTest::assertPreConditions
TemplateMethodsTest::testOne
TemplateMethodsTest::assertPostConditions
TemplateMethodsTest::tearDown
.TemplateMethodsTest::setUp
TemplateMethodsTest::assertPreConditions
TemplateMethodsTest::testTwo
TemplateMethodsTest::tearDown
TemplateMethodsTest::onNotSuccessfulTest
FTemplateMethodsTest::tearDownAfterClass
Time: 0 seconds, Memory: 5.25Mb
There was 1 failure:
1) TemplateMethodsTest::testTwo
Failed asserting that <boolean:false> is true.
/home/sb/TemplateMethodsTest.php:30
FAILURES!
Tests: 2, Assertions: 2, Failures: 1.
========
Предыдущая тема http://phpforum.ru/index.php?showtopic=72206
Следующая Тема "Создание заменяющих объектов (Mock)"
_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();