Тестирование компонентов CakePHP

Проникшись идеей Test-Driven Development, я решил наконец делать тесты для новых проектов. Предлагаю написать компонент Browser, на котором посмотрим как тестируются компоненты.

Для большинства проектов не нужно фанатично тестировать всё, что теоретически может случиться. Обычно достачно проверить базовую функциональность.

Например, наш браузер должен:

  1. загружаться в контроллер без ошибок
  2. скачивать http://www.google.com

Для того, чтобы протестировать пункт 1, надо создать пустой контроллер и попробовать загрузить в него наш компонент.

app\tests\cases\components\browser.test.php

PHP:
  1. <?php
  2.  
  3. class BrowserTestController extends Controller {
  4.     var $name = 'BrowserTest';
  5.     var $uses = null;
  6.     var $components = array('Browser');
  7. }
  8.  
  9. class BrowserTest extends CakeTestCase {
  10.     var $name = 'Browser';
  11.     var $controller = null;
  12.     var $Browser = null;
  13.  
  14.     function setUp() {
  15.         $this->controller =& new BrowserTestController();
  16.  
  17.         restore_error_handler();
  18.         @$this->controller->_initComponents();
  19.         set_error_handler('simpleTestErrorHandler');
  20.  
  21.         $this->Browser = $this->controller->Browser;
  22.         $this->Browser->startup($this->controller);
  23.         ClassRegistry::addObject('view', new View($this->controller));
  24.     }
  25.  
  26.     function testDownload() {
  27.         $result = $this->Browser->get('http://www.google.com');
  28.         $this->assertPattern('/<html>/i', $result);
  29.         $this->assertPattern('/HTTP\/1.1 200 OK/', $this->Browser->header);
  30.     }
  31.  
  32.     function testUserAgent() {
  33.         $this->assertPattern('/^.* \(/', $this->Browser->userAgent);
  34.     }
  35.  
  36. }
  37. ?>


Понравилось?

  1. Подпишись через RSS
  2. Расскажи о http://php.southpark.com.ua друзьям.
    Все способы хороши: ICQ, E-mail, свой блог, комментарий в чужом блоге или сообщение на форуме
  3. Добавь статью на news2.ru, Хабрахабр или в закладки

Огромное спасибо!

И не стесняйтесь комментировать - у меня стоит плагин, который убирает rel="nofollow" у людей, которые написали больше 5 комментариев.

RSS feed | Trackback URI

5 комментариев »

2007-10-19 21:04:31

[...] CakePHP. , , [...]

 
2007-10-19 21:16:46

[...] , , - , [...]

 
2007-12-06 17:51:10

[...] который проверяет все функции, но я и так молодец, что написал хоть какой-то тест Когда вы пишете свои компоненты, не [...]

 
2007-12-06 17:52:01

[...] всего в CakePHP. О том как тестировать компоненты, я уже писал, теперь пришло время [...]

 
Comment by Artur
2008-01-25 18:58:25

а как этот тест запускать?
я щас кстати создаю блог по cakePHP :-))) думаю интересно будет всем.

 
Имя (required)
E-mail (required - never shown publicly)
URL
Текст комментария
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.