5

Wraz z wersją Rails 5.1, zawierały testy systemowe. Co oznacza, że ​​możemy przetestować nasz JavaScript również w Railsach. Widzę przewodnik Railsowy wyjaśnia próbny test tworząc artykuł w obie strony: poprzez test systemu i test integracyjny.Kiedy wybrać test systemowy na test integracyjny Rails 5.1?

Teraz pytanie brzmi: przed Railsami 5.1 Pisałem złożone przypadki testowe w testach integracyjnych. Ale teraz mam dwie możliwości napisania testu. mogę napisać przypadek testowy jak

test: should create article 

w teście integracyjnym, ale mogę też pisać ten sam przypadek testowy w teście systemu.

Kiedy należy wybrać test systemu, aby napisać test i kiedy wybrać testy integracji?

+1

Testy integracji nie używają przeglądarki, więc nie można przetestować w nich js. – MikDiet

Odpowiedz

5

Krótka odpowiedź została udzielona przez MikDiet. Aby uzyskać długą odpowiedź, zapoznaj się z documentation w sprawie testów systemowych i integracyjnych.

Testy systemowe pozwalają na przeprowadzanie testów w prawdziwej przeglądarce lub bezgłowy sterownik do testowania pełnych interakcji użytkownika z aplikacji.

Krótka zasada mówi, że wszystkie testy wchodzące w interakcje z Javascriptem muszą być uruchamiane jako testy systemowe. Ale możesz też użyć ich do przetestowania swojego responsywnego układu, ponieważ możesz określić rozmiar ekranu przeglądarki.

Testy integracyjne służą do testowania interakcji różnych części aplikacji. Są one zwykle używane do testowania ważnych przepływów pracy w naszej aplikacji.

Testy integracji są różne, ponieważ nie są uruchamiane przez przeglądarkę. Nadal pozwalają ci na interakcję z kodem HTML strony z wynikami, ale pamiętaj, że pracujesz z wyjściem statycznym static.

W testach integracyjnych głównie przyglądasz się zachowaniom kontrolerów, a nie tak bardzo, jak użytkownik widzi i współdziała z nimi. Ta część dokumentacji może pomóc ci zrozumieć, o co chodzi w testach integracyjnych: Functional Tests for Your Controllers.

+0

Więc testy systemowe są ulepszeniem i zastąpieniem testów funkcji? – Marklar

+1

Nie powiedziałbym tego. Testy systemowe są mniej więcej odpowiednikiem Minitest dla specyfikacji funkcji RSpec. Na wysokim poziomie są prawie takie same. Na niskim poziomie testy systemowe są nieco łatwiejsze do skonfigurowania i być może trochę szybciej teraz, ponieważ są ściśle zintegrowane z Railsami. Ale o ile wiem, RSpec planuje użyć API testu systemu dla swoich specyfikacji funkcji, co sprawiłoby, że byłyby dokładnie takie same, tylko z inną składnią. – jdno