Zaawansowana aplikacji Yii 2 korzysta z Codeception jako głównego frameworka testowego. 
Kilka przygotowanych przykładowych testów można znaleźć w folderze tests w frontend, backend i common.
Poniżej opisana procedura zakłada, że aplikacja została zainicjowana dla środowiska dev. W przypadku testowania 
środowiska Production należy ręcznie skopiować pliki yii_test i yii_test.bat z folderu environments/dev do 
głównego folderu projektu.
Proces testowania wymaga dodatkowej bazy danych, która będzie czyszczona pomiędzy poszczególnymi testami.
Stwórz bazę danych MySQL o nazwie yii2advanced_test (zgodnie z konfigurację pliku common/config/test.php) i uruchom: 
./yii_test migrate
Zbuduj pakiet testowy:
vendor/bin/codecept build
Teraz wszystkie przykładowe testy można uruchomić za pomocą:
vendor/bin/codecept run
Rezultat będzie podobny do poniższego:

Zalecane jest ciągłe aktualizowanie swoich testów. W przypadku, gdy klasa lub funkcjonalność jest usuwana, odpowiadające 
jej testy również powinny być skasowane.
Testy powinno się przeprowadzać regularnie, a najlepiej jest przygotować do tego celu serwer Ciągłej Integracji.  
Przeczytaj artykuł Yii 2 Framework Case Study, aby zapoznać się z konfiguracją Codeception dla swojej aplikacji.
Testy dla klas folderu common umieszczone są w common/tests. W tym szablonie przygotowane zostały jedynie testy 
jednostkowe.
Uruchomisz je za pomocą:
vendor/bin/codecept run -- -c common
Opcja -c pozwala na ustawienie ścieżki do pliku konfiguracyjnego codeception.yml.
Testy jednostkowe pakietu (umieszczone w common/tests/unit) mogą korzystać z funkcjonalności frameworka Yii: 
Yii::$app, Active Record, fixtures, itp. Jest to możliwe dzięki modułowi Yii2 dodanemu w konfiguracji 
common/tests/unit.suite.yml (moduł można wyłączyć, aby przeprowadzać testy w izolacji od głównego frameworka). 
Pakiet testowy części Frontend składa się z testów jednostkowych, funkcjonalnych i akceptacyjnych.
Uruchomisz je za pomocą:
vendor/bin/codecept run -- -c frontend
Opis poszczególnych pakietów:
unit ⇒ klasy związane jedynie z aplikacją front-end.functional ⇒ wewnętrzne żądania i odpowiedzi aplikacji (bez serwera web).acceptance ⇒ aplikacja web, interfejs użytkownika i interakcje z użyciem JavaScript w prawdziwej przeglądarce.Domyślnie testy akceptacyjne są wyłączone. Poniżej znajdziesz instrukcję ich uruchamiania:
Aby przeprowadzić testy akceptacyjne, wykonaj następujące kroki:
Zmień nazwę pliku frontend/tests/acceptance.suite.yml.example na frontend/tests/acceptance.suite.yml, aby włączyć konfigurację pakietu
Zamień pakiet codeception/base w pliku composer.json na codeception/codeception, aby zainstalować pełną wersję Codeception
Zaktualizuj zależności używając Composera
  composer update  
Wygeneruj automatycznie nowe pomocnicze klasy dla testów akceptacyjnych:
  vendor/bin/codecept build -- -c frontend
Pobierz Serwer Selenium i uruchom go:
  java -jar ~/selenium-server-standalone-x.xx.x.jar
 
Uruchom serwer web:
  php -S 127.0.0.1:8080 -t frontend/web
Teraz już możesz uruchomić wszystkie dostępne testy
vendor/bin/codecept run acceptance -- -c frontend
Aplikacja back-end zawiera testy jednostkowe i funkcjonalne. Uruchomisz je za pomocą:
vendor/bin/codecept run -- -c backend