Kohana
Kohana - один из десятка php-фреймворков, имеющий в том числе и модуль для юнит-тестирования написанного кода. Про тестирование в общем я уже писал, про настройку phpunit тоже. Упростив статью одного безымянного товарища, в сторону использования PHPStorm IDE вот к чему я пришёл..
- В application/boostrap.php надо найти строчку с unittest модулем и раскоментировать
- Создать папку и файл application/tests/boostrap.php - тут у нас будут лежать тесты для приложения
define('SUPPRESS_REQUEST', true); require_once('../../index.php'); - Обернуть последние строчки index.php в IF что-бы для юнит-тестов не выводилась заглавная страница
if (!defined('SUPPRESS_REQUEST')){ echo Request::factory()... } - Теперь в настройках PHPStorm 3.0 (Run-Edit configurations) прописываем пути с запуском всей папки..
Теперь можно добавлять тесты в application/tests/classes/ где уже будет работать автозагрузка Kohana-классов. В моём примере тестируется класс Model_Message который отвечает за форматирование текста для оповещения пользователя. То как хранятся оповещения или переводятся в данном случае неважно - тестируется конкретный случай передачи массива и получения строки.
defined('SYSPATH') or die('No direct access allowed!');
/** @property Model_Message object */
class MessageTest extends Unittest_TestCase {
private $object;
public function setUp() {
parent::setUp();
$this->object = new Model_Message();
}
/** @test */
public function formatFriendMessageWeb() {
$result = $this->object->formatForWeb(array(
'object'=> 'friend',
'action'=> 'request'
));
$this->assertEquals($result, 'asked to friend');
}
}
Сам тестируемый объект я не привожу, тут важно как идёт подгрузка, запуск и результат: