Development

Documentation/pl_PL/book/1.0/15-Unit-and-Functional-TestingChapter (diff)

You must first sign up to be able to contribute.

Changes between Version 135 and Version 136 of Documentation/pl_PL/book/1.0/15-Unit-and-Functional-TestingChapter

Show
Ignore:
Author:
Waldemar.Mekal (IP: 91.192.165.110)
Timestamp:
11/13/07 23:30:05 (9 years ago)
Comment:

Translation Review

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/pl_PL/book/1.0/15-Unit-and-Functional-TestingChapter

    v135 v136  
    408408Testy funkcjonalne walidują elementy składowe twoich aplikacji. Symulują sesję użytkownika, wysyłają żądania i sprawdzają elementy obecne w odpowiedzi tak, jak Ty robiłbyś to ręcznie, aby upewnić się, czy akcja robi to, co powinna. W testach funkcjonalnych badasz scenariusz odpowiadający danemu przypadkowi użycia. 
    409409 
    410 /// 
    411  
    412410### Jak wyglądają testy funkcjonalne? 
    413411 
    414 Mógłbyś przeprowadzać swoje testy funkcjonalne używając przeglądarki tekstowej i wielu asercji wykorzystujących wyrażenia regularne, ale byłaby to duża strata czasu. Symfony dostarcza specjalnego obiektu, zwanego sfBrowser, który symuluje działanie przeglądarki podłączonej do aplikacji Symfony bez konieczności korzystania z serwera - i wolnej od opóźnień związanych z transmisją przez HTTP. Obiekt ten daje dostęp do istotnych obiektów każdego żądania (request, sesji, context, response). Symfony dostarcza również klasę będąca jej rozszerzeniem, sfTestBrowser, zaprojektowaną specjalnie do testów funkcjonalnych i posiadającą, oprócz wszystkich możliwości klasy sfBrowser, kilka eleganckich metod służacych do sprawdzania asercji. 
    415  
    416 Testy funkcjonalne zaczynają się tradycyjnie od inicjalizacji obiektu test browser. Obiekt ten wysyła żądania do akcji i weryfikuje, czy pewne elementy są obecne w odpowiedzi. 
     412Mógłbyś przeprowadzać swoje testy funkcjonalne używając przeglądarki tekstowej i wielu asercji wykorzystujących wyrażenia regularne, ale byłaby to duża strata czasu. Symfony dostarcza specjalnego obiektu - sfBrowser, który symuluje działanie przeglądarki połączonej z aplikacją Symfony bez konieczności korzystania z serwera - i wolnej od opóźnień związanych z transmisją przez HTTP. sfBrowser daje dostęp do istotnych obiektów każdego żądania (obiekty: request, session, context, response). Symfony dostarcza również rozszerzenie tej klasy - klasę sfTestBrowser, zaprojektowaną specjalnie do testów funkcjonalnych i posiadającą, oprócz wszystkich możliwości klasy sfBrowser, kilka eleganckich metod służacych do sprawdzania asercji. 
     413 
     414Testy funkcjonalne zaczynają się zwykle od inicjalizacji obiektu sfTestBrowser. Obiekt ten wysyła żądania do akcji i weryfikuje, czy pewne elementy są obecne w odpowiedzi. 
    417415 
    418416Przykładowo, za każdym razem, gdy generujesz szkielet modułu za pomocą polecenia init-module lub propel-init-crud, Symfony tworzy prosty test funkcjonalny dla tego modułu. Test ten wykonuje żądanie do domyślnej akcji modułu, po czym sprawdza kod statusu odpowiedzi, moduł i akcję wyznaczoną przez system routingu oraz obecność pewnej frazy w treści odpowiedzi. Dla modułu foobar wygenerowany plik foobarActionsTest.php wygląda jak na listingu 15-9. 
    438436 
    439437>**TIP** 
    440 > Metody obiektu browser zwracają obiekt sfTestBrowser, więc możesz łańcuchowo wywoływać metody w celu zwiększenia czytelności twoich testów. Nazywa się to płynnym interfejsem obiektu, ponieważ nic nie przerywa strumienia wywołań metod. 
    441  
    442 Testy funkcjonalne mogą zawierać wiele żądań i bardziej skomplikowane asercje; wkrótce, w kolejnych podrozdziałach, odkryjesz wszystkie możliwości. 
    443  
    444 Aby uruchomić test funkcjonalny użyj polecenia test-functional z linii poleceń Symfony, jak pokazano na listingu 15-10. Oczekuje ono nazwy aplikacji i nazwy testu (bez przyrostka Test.php). 
     438> Metody obiektu browser zwracają obiekt sfTestBrowser, możesz więc łańcuchowo wywoływać metody w celu zwiększenia czytelności twoich testów. Nazywa się to płynnym interfejsem obiektu, ponieważ nic nie przerywa strumienia wywołań metod. 
     439 
     440Testy funkcjonalne mogą zawierać wiele żądań i bardziej skomplikowane asercje; w kolejnych podrozdziałach poznasz wszystkie możliwości. 
     441 
     442Aby uruchomić test funkcjonalny, użyj polecenia test-functional z linii poleceń Symfony, jak pokazano na listingu 15-10. Oczekuje ono nazwy aplikacji i nazwy testu (bez przyrostka Test.php). 
    445443 
    446444*Listing 15-10 - Uruchamianie pojedynczego testu funkcjonalnego z linii poleceń* 
    456454    1..4 
    457455 
    458 Wygenerowane testy funkcjonalne dla nowego modułu domyślnie kończą się niepowodzeniem. Dzieje sie tak dlatego, że w nowo utworzonym module akcja index przekierowuje do strony z gratulacjami (zamieszczonej w module default Symfony), która zawiera frazę "This is a temporary page" ("To jest strona tymczasowa" - tłum.). Dopóki nie zmodyfikujesz akcji index, testy dla tego modułu będą kończyły się porażką, co gwarantuje że aplikacja z niedokończonym modułem nie może przejść testów pomyślnie
     456Wygenerowane testy funkcjonalne dla nowego modułu domyślnie kończą się niepowodzeniem. Dzieje sie tak dlatego, że w nowo utworzonym module akcja index przekierowuje do strony z gratulacjami (zamieszczonej w module default Symfony), która zawiera frazę "This is a temporary page" ("To jest strona tymczasowa" - tłum.). Dopóki nie zmodyfikujesz akcji index, testy dla tego modułu będą kończyły się niepomyślnie, co gwarantuje że aplikacja z niedokończonym modułem nie może przejść wszystkich testów
    459457 
    460458>**NOTE** 
    461459> W testach funkcjonalnych funkcja autoloading (automatyczne ładowanie klas) jest włączona, więc nie musisz dołączać plików własnoręcznie. 
    462460 
     461 
     462/// 
    463463 
    464464### Korzystanie z obiektu sfTestBrowser