2012-10-31 12 views
5

Posiadamy odizolowany zespół automatyzacji testów odpowiedzialny za automatyzację tylko przypadków testowych funkcjonalności Watir + Ogórek. Ich baza kodowa nie jest dołączona do aplikacji szyny, nad którą pracują inni deweloperzy, ale jest oddzielona. Do tej pory zautomatyzowaliśmy kilka przypadków testowych, a teraz mamy problem, niektóre przypadki testowe (watir/cucumber specs) wymagają wcześniejszej ilości danych do db, więc to (testcase) powinno skupiać się tylko na problemie, a nie tworzenie jakichkolwiek danych - wymaga sam.Fabryka danych dla ogórka, watir

Przykład, powiedz, czy ma sprawdzić, czy ocena działa dla postu, wymaga, aby obiekt postu działał wcześniej i po prostu sprawdza ocenę. Nie tworząc pierwszego obiektu postu, a następnie sprawdzając jego ocenę.

Jakie są najlepsze podejścia? Tak jak mamy instalacje i fabrykę do testowania urządzeń szynowych, co jest w przypadku specyfikacji ogórka? Czy możemy skorzystać z funkcji tylko tutaj? Ci testerzy mogą nie mieć pojęcia o wszystkich istniejących modelach, czy są tego świadomi, aby używać urządzeń poprzez wywoływanie interfejsu Rails-Model.

Mój pomysł polegał na tym, że kiedy piszemy plik z cechami, nie powinien on wskazywać ani mówić o Modelu, który wygląda jak meta. Testy Watir/Specs powinny być znane tylko z "aplikacji WWW"/przeglądarki jako interfejsu do rozmowy/obsługi aplikacji. Nie powinni znać żadnego innego interfejsu (urządzenia/modele). Dlatego powinni samodzielnie tworzyć własne dane, korzystając z jednego interfejsu, jaki znają.

Jeszcze raz, co chcę wiedzieć, czy istnieje ruby ​​lib/code, podane nazwy tabel, nazwy kolumn i wartości (wszystkie najbardziej przypominają urządzenia yml) wraz z parametrami db. Po prostu wstawi je do db, bez kontekstu środowiska rails. I tak testerzy, których środowisko jest odizolowane od ruterów, programiści WWW mogliby pracować samodzielnie. Oprawy szyn lub fabrykantki wydają się być dobrze połączone z szynami. Czy jestem niepoprawny?

+0

Ale kto mówi, że Factory Girl jest tylko dla rspec? Działa również z Cuc. http://collectiveidea.com/blog/archives/2010/09/09/practical-cucumber-factory-girl-steps/ – Chirantan

Odpowiedz

1

Podobnie jak Chirantan powiedział, że możesz użyć Factory girl z ogórkiem. Zgodnie z wymaganiami swoich fabryk w jednostce testowej lub RSpec, możesz zrobić to samo w pliku env.rb ogórka lub w dowolnym niestandardowym pliku konfiguracyjnym.

http://robots.thoughtbot.com/post/284805810/gimme-three-steps

http://www.claytonlz.com/2010/03/zero-to-tested-with-cucumber-and-factory-girl/

http://www.andhapp.com/blog/2009/11/07/using-factory_girl-with-cucumber/

+0

jeśli mogę użyć Factory girl, to czemu nie fixtures? dobrze? –

+1

Tak, możesz również użyć urządzeń. – hindenbug

-1

Podczas korzystania ogórek, dana instrukcja ustawia sytuację testową up:

Given I have a basic user with a password 

a gdy oświadczenie wyzwala Test:

When the user logs in 

i sprawdza rachunku wyników testu

Then they see the basic menu 

dane zostaną załadowane w danym stwierdzeniem.

+0

Przygotowuje środowisko do tego, co przed rozpoczęciem testu. Biorąc pod uwagę, że mam 7 stóp wzrostu, kiedy przechodzę przez drzwi, powinienem uderzyć głową. Podany czyni mnie 7 stóp wysokości przed rozpoczęciem testu. Kiedy trzeba przejść przez drzwi. Wtedy upewniam się, że uderzę się w głowę. Nie mogłem tego zrobić, gdybym nie miał 7 stóp wzrostu.Idealnie byłoby to połączenie z bazą danych, aby użytkownik istniał i miał 7 stóp wysokości. Często konfiguracja jest nazywana warunkiem wstępnym. W przypadku rspec zwykle jest to wcześniej: każdy lub wcześniej: wszystkie. W teście: unit, to setup(). –