CodeIgniter и SimpleTest - Как сделать мой первый тест? - PullRequest
3 голосов
/ 17 мая 2010

Я привык к веб-разработке с использованием LAMP, PHP5, MySQL плюс NetBeans с Xdebug.

Теперь я хочу улучшить свою разработку, научившись использовать (A) правильное тестирование и (B) каркас. Поэтому я настроил CodeIgniter, SimpleTest и надстройку easy Xdebug для Firefox. Это очень весело, потому что maroonbytes предоставил мне четкие инструкции и настроенную настройку, готовую к загрузке. Я стою на плечах великанов и очень благодарен.

Я немного раньше использовал SimpleTest. Вот что я написал:

<?php
require_once('../simpletest/unit_tester.php');
require_once('../simpletest/reporter.php');

class TestOfMysqlTransaction extends UnitTestCase {
  function testDB_ViewTable() {
    $this->assertEqual(1,1);   // a pseudo-test
  }
}
$test = new TestOfMysqlTransaction();
$test->run(new HtmlReporter())
?>

Так что я надеюсь, что знаю, как выглядит тест. Что я не могу понять, так это где и как поставить тест в моей новой настройке. Я не вижу примеров тестов в пакете maroonbytes, и Google до сих пор приводил меня к сообщениям, которые предполагают, что модульное тестирование уже функционально доступно. Что мне делать?

Ответы [ 2 ]

2 голосов
/ 17 мая 2010

Изменить:

Если вы следуете настройке maroonbytes, просто следуйте инструкциям:

  1. Загрузите инфраструктуру SimpleTest и извлеките файлы в каталог @codeigniter.
  2. В основной папке и в папке admin / application создайте новую папку с именем tests.
  3. В настройках новой папки тестов добавлены дополнительные папки, называемые «модели», «виды», «контроллеры», «библиотеки» и «помощники» .

Любой файл, заканчивающийся на .php и с UnitTestCase внутри любой из этих папок, должен быть запущен. :)

1 голос
/ 03 августа 2010

Во-первых, тесты должны быть названы правильно. Для проверки приветствия контроллера, помещенного в файл welcome.php, тест называется welcome_controller_test.php и хранится в папке tests / controllers /. Подробнее см. в этом посте .

Во-вторых, аргумент GET Xdebug вмешивается в процедуру теста. Смотрите пост выше, также этот пост .

В-третьих, тест на заглушку, который я отправил, потребовал две четыре строки удалены:

//require_once('../simpletest/unit_tester.php');
//require_once('../simpletest/reporter.php');
...
//$test = new TestOfMysqlTransaction();
//$test->run(new HtmlReporter())

Сейчас я делаю тесты довольно счастливо. CodeIgniter позволяет легко создавать / поддерживать тесты, поэтому моя цель TDD выглядит достижимой. Мои ранние попытки TDD дали мне идею, но чистый PHP был слишком бесплоден, чтобы я был эффективным (и мы не будем обсуждать VBA!).

...