pisałem na blogu o tym, jak to zrobić można znaleźć użyteczne
http://rburnham.wordpress.com/2011/03/15/bdd-ui-automation-with-specflow-and-coded-ui-tests/
jest Twój testowania pro i con kodowanych UI test, który mogę myśleć aplikacja dokładnie w jaki sposób użytkownik używaj go. Jest to dobre dla testu akceptacyjnego, ale ma również swoje ograniczenia. Jest również bardzo dobry do testów końcowych. W przeszłości testy interfejsu użytkownika były znane jako delikatne. Na przykład, gdy MS stworzył interfejs użytkownika VS2010, prawie wszystkie testy interfejsu uległy zepsuciu. Głównym powodem jest zmiana technologii. Testy kodowanych interfejsów pomagają ograniczyć to zjawisko poprzez dopasowanie do kontroli. Używa więcej dopasowania opartego na prawdopodobieństwie. Oznacza to, że spróbuje znaleźć najlepsze dopasowanie na podstawie posiadanych informacji, takich jak nazwa kontrolna. Dla nas testowanie kodowanych UI było naszym wyborem ze względu na ograniczenia technologiczne. Nasza aplikacja Legacy to VB i chociaż CUIT nie działa świetnie, jestem w trakcie pisania rozszerzenia, by uzyskać lepsze informacje kontrolne, to wciąż był nasz jedyny wybór. Pamiętaj też, że CUIT jest nowy i ma swoje własne ograniczenia. Powinieneś być przygotowany na sposób, w jaki projektujesz swój układ, ponieważ obsługa UIMaps może wymagać trochę pracy ręcznej ze względu na bieżące zachowanie się końca w VS2010, na przykład tworzenie CUIT z istniejącego nagrania akcji zawsze umieszcza test w UIMap nazwie UIMap.uitest i nie ma sposobu, aby to zmienić lub przenieść do innego UIMap. Jeśli korzystasz z wielu map interfejsu użytkownika, oznacza to, że musisz najpierw zarejestrować swoje kroki, a następnie użyć ich w teście. Jednak będąc w sieci .net jest nadal bardzo elastyczny.
Zdecydowanie najlepszą rzeczą w specflow jest jego składnia gerkin dla czytelnej i żywej dokumentacji. Zwykle twoje funkcje testowania lub zachowania aplikacji, z których pochodzi wartość Z reguły ma na celu test tuż pod interfejsem użytkownika. Jest trochę mniejsze prawdopodobieństwo, że test się zepsuje, gdy interfejs użytkownika zmieni się tutaj, ale tutaj. Specflow do mnie jest świetny, gdy twoja aplikacja podlega ciągłym zmianom i chcesz zapewnić działanie istniejących funkcji. Dobrze pasuje również do środowiska Scrum, w którym możesz napisać swój scenariusz jako opis tego, jak powinien on działać. Jednym ograniczeniem do specflow widzę jest otwarty na interpretację. Z tego powodu łatwo można napisać test, który nie jest zbyt trudny do ponownego wykorzystania i trudny do utrzymania. Lubię używać bardziej ogólnych określeń do opisania moich kroków, takich jak "Zaloguj się jako Użytkownik1" zamiast "Przejdź do strony logowania, wprowadź nazwę użytkownika i hasło, kliknij logowanie". Opisanie go bardziej szczegółowym sprawia, że trudniej go ponownie użyć, by powiązać go z interfejsem użytkownika. Sposób działania logowania powinien być zgodny z kodem, a nie z funkcją przepełnienia.
Łączenie 2 jednak wydaje nam się bardziej korzystne niż po prostu używanie testów kodowanych UI. Jeśli zdecydujemy się całkowicie zmienić interfejs użytkownika, będziemy przynajmniej mieli zachowania, które są oczekiwane, przechowywane w naszych funkcjach specflow w sposób zrozumiały dla każdego. Na końcu musisz zastanowić się, w jaki sposób aplikacja będzie ewoluować i jaki rodzaj aplikacji.