Download the PHP package n-educatio/testbundle without Composer
On this page you can find all versions of the php package n-educatio/testbundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download n-educatio/testbundle
More information about n-educatio/testbundle
Files in n-educatio/testbundle
Package testbundle
Short Description Framework for Specification by Example and e2e testing
License
Homepage https://github.com/n-educatio/TestBundle
Informations about the package testbundle
TestBundle
Paczka usprawnia mechanizm Symfonowskiego ładowania fixturesów. Paczka jest całkowicie autonomiczna, oraz jest pokryta testami jednostkowymi w 100%. Co więcej, TestBundle wprowadza nową zasadę odwoływania się do konkretnych elementów na stronie za pomocą tak zwanych uchwytów.
Instalacja
Zmiany dla pliku composer.json
Następnie instalujemy brakujące vendorsy:
Uruchamianie testów paczki TestBundle
ant test - testy phpunit oraz testy behat
Przykład użycia fixturesów
Przykład można zobaczyć tutaj
Przykład użycia uchwytów
Przykład testu dla zmiany języka:
Kontekst
W naszym przypadku PageObjectem może stać się każdy element na stronie, taki jak menu, panel językowy, itp. Na co należy zwrócić uwagę to pole $proofSelector, które informuje o zasięgu działania PageObjectu.
Zauważ, że metoda get() pobiera teraz uchwyt id, który musi być zahardkodowany w htmlu jako t_uchwyt.
Podział na Persony/itp
Naszym celem jest wczytanie tylko konkrentych Fixturesów potrzebnych do odpalenia testów, stąd każdy Fixture deklarowany jest jako konkrenta Osoba/Kurs/Komentarz/itd, który posiada unikatowe właściwości i atrybuty. Powiedzmy, że w naszym systemie istnieje dwóch testowych użytkowników: Julia Lazy ( persona, która jest już zarejestrowana w serwisie ) oraz Amy Fresh ( persona nie powiązana jeszcze w żaden sposób z aplikacją, ale posiadająca swój własny adres email, nazwę itp. Tworzymy je w następujący sposób: Nasza Amy Fresh
Oraz Julia Lazy
Obie persony w tym przypadku muszą dziedziczyć po klasie LoadActorUserData. Oczywistym staje się fakt, że każdy rodzaj person będzie miał analogicznie budowaną klasę, po której dziedziczą persony tego samego rodzaju.
Zależności
Dodawanie
Przejdżmy teraz do sedna możliwości naszego TestBundle. Załóżmy, że chcemy dodać do naszych Fixturesów pewne zależności. Robimy to w bardzo prosty sposób. W klasie Fixture A, która jest zależna od klasy Fixture B dodajemy taki oto krótki wpis:
Teraz za każdym razem, gdy będziemy próbowali wczytać Fixture A, nasz TestBundle doczyta nam zależny Fixture B.
Wczytywanie
Czas na ostatni krok, jakim jest wczytanie Fixturesów. By móc tego dokonać należy w metodzie kontekstu dodać poniższy kod:
All versions of testbundle with dependencies
symfony/symfony Version 2.3.*
symfony/framework-bundle Version ~2.3
doctrine/orm Version >=2.2.3,<2.4-dev
doctrine/doctrine-fixtures-bundle Version dev-master
doctrine/data-fixtures Version dev-master
behat/mink-extension Version ~1.2
behat/mink-goutte-driver Version *
behat/mink-selenium2-driver Version *
behat/symfony2-extension Version *
mockery/mockery Version >=0.7.2