Czy próbowałeś przedłużyć CWebTestCase? Generalnie podczas pisania testów jednostkowych masz urządzenia i rzeczy niezbędne do dostarczenia niezbędnych danych - ale dzięki testom wyświetleń i testom "funkcjonalnym" dla aplikacji internetowych na ogół łatwiej jest naśladować przeglądarkę i sprawić, by działała ona w aplikacji internetowej jako jeśli użytkownik faktycznie go używał. Obecnie to naśladowanie jest najłatwiejsze z Selenium (moim zdaniem).
Przewodnik Yii na Functional Testing jest dobrym miejscem do rozpoczęcia pracy, podobnie jak Selenium Documentation. Jest też this book, który idzie dalej za pomocą selenu (nie jestem pewien, czy to najnowsze wydanie, ale wiem, że poprzednie wydanie z datą publikacji: 11 sierpnia 2010 r. Zrobiło), a Larry Ullman's Yii Book będzie miał rozdziały dotyczące testowania i użycia Selen w testach funkcjonalnych po ukończeniu tego rozdziału.
Mam nadzieję, że to pomoże!
Aktualizacja do dalszego wyjaśnienia CWebTestCase
CWebTestCase rozciąga PHPUnit_Extensions_SeleniumTestCase która bezpośrednio realizuje funkcjonalnego testowania fundament, który można wykorzystać w ciągu PHPUnit w celu zbadania poglądów, tworzenia widgetów badanie wewnątrz poglądów, twierdzą, że tekst nie istnieje " kliknij na linki, itd. Testy te są nadal uruchamiane z wiersza poleceń, chociaż wymagają uruchomienia serwera Selenium-RC po uruchomieniu testu i wymagają skonfigurowania prawidłowej przeglądarki. Ważny przeglądarka może być skonfigurowana tak mało kodu, jak poniższe umieszczony wewnątrz setUp()
funkcję:
$this->setBrowser('*firefox /usr/lib/firefox/firefox-bin');
stwierdzając, że pokrycie kodu nie mogą być świadczone przez CWebTestCase Nie jest prawdą, jak CWebTestCase rozciąga PHPUnit_Extensions_SeleniumTestCase, która udostępnia następujące jako cytat z the documentation:
PHPUnit_Extensions_SeleniumTestCase może zbierać pokrycie kodu informacje o testach wykonywanych przez Selen:
Copy PHPUnit/Extensions/SeleniumTestCase/phpunit_coverage.php
do twojego katalogu głównego serwera WWW. W pliku konfiguracyjnym php.ini na serwerze internetowym, należy skonfigurować
PHPUnit/Extensions/SeleniumTestCase/prepend.php
i PHPUnit/Extensions/SeleniumTestCase/append.php
jako odpowiednio auto_prepend_file
i auto_append_file
,.W swojej klasie testu przypadku, rozciąga PHPUnit_Extensions_SeleniumTestCase
użyć
protected $coverageScriptUrl = 'http://host/phpunit_coverage.php';
skonfigurować adres URL skryptu phpunit_coverage.php
.
Świetne pytanie! Chciałbym, aby większy nacisk położono na testy jednostkowe i funkcjonalne w przewodnikach ramowych i książkach niż na standardową funkcjonalność, którą można się nauczyć w ciągu 10 minut. – AndrewPK