Тестирование компонентов CakePHP
Проникшись идеей Test-Driven Development, я решил наконец делать тесты для новых проектов. Предлагаю написать компонент Browser, на котором посмотрим как тестируются компоненты.
Для большинства проектов не нужно фанатично тестировать всё, что теоретически может случиться. Обычно достачно проверить базовую функциональность.
Например, наш браузер должен:
- загружаться в контроллер без ошибок
- скачивать http://www.google.com
Для того, чтобы протестировать пункт 1, надо создать пустой контроллер и попробовать загрузить в него наш компонент.
app\tests\cases\components\browser.test.php
-
<?php
-
-
class BrowserTestController extends Controller {
-
var $name = 'BrowserTest';
-
var $uses = null;
-
}
-
-
class BrowserTest extends CakeTestCase {
-
var $name = 'Browser';
-
var $controller = null;
-
var $Browser = null;
-
-
function setUp() {
-
$this->controller =& new BrowserTestController();
-
-
@$this->controller->_initComponents();
-
-
$this->Browser = $this->controller->Browser;
-
$this->Browser->startup($this->controller);
-
ClassRegistry::addObject('view', new View($this->controller));
-
}
-
-
function testDownload() {
-
$result = $this->Browser->get('http://www.google.com');
-
$this->assertPattern('/<html>/i', $result);
-
$this->assertPattern('/HTTP\/1.1 200 OK/', $this->Browser->header);
-
}
-
-
function testUserAgent() {
-
$this->assertPattern('/^.* \(/', $this->Browser->userAgent);
-
}
-
-
}
-
?>
[...] CakePHP. , , [...]
[...] , , - , [...]
[...] который проверяет все функции, но я и так молодец, что написал хоть какой-то тест Когда вы пишете свои компоненты, не [...]
[...] всего в CakePHP. О том как тестировать компоненты, я уже писал, теперь пришло время [...]
а как этот тест запускать?
я щас кстати создаю блог по cakePHP :-))) думаю интересно будет всем.