Instalacja frameworka do testów PHP – Codeception

Autor: Rafal Marguzewicz
Opublikowany:
Kategorie: Bez kategoriiProgramowanie
Tagi:

logo testy php>Na przykładzie Codeception – frameworka PHP do testów jednostkowych funkcjonalnych i akceptacyjnych przedstawię kwestię mam nadzieję w bardzo prosty sposób. Nie zależnie od poziomu, polecam zapoznać się z tematem. Nawet jeżeli jesteś początkującym programistą, instalacja Codeception za pomocą Composer pomoże zrozumieć ci ogólne konwencje programowania obiektowego. Wiedząc do czego można użyć OOP łatwiej będzie ci zrozumieć to zagadnienie.

Zakładam że masz już zainstalowany Composer oraz znasz temat auto ładowania plików w PHP

Na razie będziemy testować na sucho bez jakiejkolwiek plików naszej aplikacji. Zainstalujemy jedynie codeception, wygenerujemy jeden test jednostkowy a nim zrobimy jedno porównanie np czy true === true. Dzięki temu będziemy w razie problemów nie będziemy się musieli zastanawiać na większą liczbą możliwyc problemów. Więc możemy przystąpić do planowania działania:

    1. Instalacja codeception za pomocą composer
    2. Konfigurując codeception
    3. Pierwszy test jednostkowy

Instalacja codeception za pomocą composer

Instalacja jak to bywa z paczkami z instalowanymi za pomocą Composer jest super prosta. Codeception możemy zainstalować lokalnie lub globalnie.

  1. instlacja lokalnie –
    composer require "codeception/codeception=2.2.*"

    Pojawi się nam katalog vendor i plik composer.json. Musimy jeszcze wygenerować katalog w którym będziemy trzymać testy jednostkowe, funkcjonalne i akceptacyjne.

    composer exec -v codecept bootstrap

    codeception folders linux

  2. instalacja globalnie – dostępna w obrębie całego systemu
    composer require global "codeception/codeception=2.2.*"

    W tedy wystarczy wpisać

    codecept bootstrap

Metoda globalna na potrzeby szkolenia jest lepsza. Komendy są krótsze i nie będziemy już musieli instalować codeception ponownie w przy innych projektach.

W naszym katalogu powinnam być tylko folder tests oraz plik codeception.yml.
Aby sprawdzić czy można odpalać testy uruchamiamy komendę

codecept run

codecept run
Na razie mamy zero testów ale jeżeli widzisz coś podobnego to znaczy że codeception działa poprawnie.

Konfiguracja codeception

codeception.yml – główny plik konfiguracyjny. Gdy odpalamy komendę codecept run, framework sprawdza czy w folderze jest plik codeception.yml, następnie przechodzi do podkatalogu który jest podany w zmiennej paths:tests. W tym folderze odszukuje 3 pliki:
unit.suite.yml – konfiguracja dla testów jednostkowych
functional.suite.yml – konfiguracja dla testów funkcyjnych
acceptance.suite.yml – konfiguracja dla testów akceptacyjnych
Gdybyśmy zmienili nazwę któregoś lub go skasowali codeception będzie wykonywał tylko pozostałe testy. Dla przykłady zmieńmy acceptance.suite.yml na acceptance.suite.yml.example i odpalmy testy. Wróć uwagę że juz testy akceptacyjne się nie uruchamiają.

codecept run

Na razie nie musimy edytować plików konfiguracyjnych. Ale trzeba pamiętać ze po każdej zmianie plików konfiguracyjnych trzeba przebudować środowiko.

codecept build

Pierwszy test jednostkowy

Za pomocą kreatora testów wygenerujemy jeden test jednostkowy

codecept generate:test unit Test

Poprawna generacja testu na zielono wskaże nam lokalizację pliku z testem a powinien on wyglądać tak:

<?php
class Test extends \Codeception\TestCase\Test
{
    /**
     * @var \UnitTester
     */
    protected $tester;

    protected function _before()
    {
    }

    protected function _after()
    {
    }

    // tests
    public function testMe()
    {

    }
}

a po odpaleniu testów powinien być już jeden test: OK (1 test, 0 assertions)

Możemy przystąpić do dodania nowego testu z jedną asercją (porównanie) tak aby w końcu nasz test coś testował. Pozwoli Ci to zrozumieć koncepcję wielu testów w jednym secie.

<?php
class Test extends \Codeception\TestCase\Test
{
    /**
     * @var \UnitTester
     */
    protected $tester;

    protected function _before()
    {
    }

    protected function _after()
    {
    }

    // tests
    public function testMe()
    {

    }

// test2
    public function testDrugi()
    {
    	$var = 'hello';
		$this->assertEquals('hello', $var);
    }
}

Po odpaleniu testów jeżeli nie ma błędów powinny
php testy

W razie problemów lub dla lepszego poznania możesz zobaczyć Instalację codeception dla framework’a Yii2

Instalacja frameworka do testów PHP – Codeception
5 / 1 vote


Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Nazwa *
E-mail *

Przeczytaj poprzedni wpis:
Nowoczesne PHP – zarządzanie zależnościami z composer

Celem tego artykułu jest przedstawienie listy kroków które trzeba wykonać aby zacząć wykorzystywać automatycznego menadżera zależności Composer w swoich projektach....

Zamknij