Testowanie dużych aplikacji z mapami wielu interfejsu użytkownika
W tym temacie omówiono sposób użyć zakodowanej testów interfejsu użytkownika, kiedy testujesz dużej aplikacji przy użyciu wielu map interfejsu użytkownika.
Wymagania
- Visual Studio Ultimate, Visual Studio Premium
Podczas tworzenia nowych kodowane jako test interfejsu użytkownika, Visual Studio framework testujący generuje kod dla badania domyślnie w UIMap klasy.Więcej informacji na temat jak nagrywać kodowane testy interfejsu użytkownika, zobacz Tworzenie zakodowanej testy interfejsu użytkownika i Anatomia Test zakodowanej interfejsu użytkownika.
Wygenerowany kod dla mapy interfejs użytkownika zawiera klasy, dla każdego obiektu, który badania współdziała z programem.Dla każdej metody wygenerowany klasie pomocniczej dla parametrów metod jest generowany specjalnie dla danej metody.W przypadku dużej liczby obiektów, strony oraz formularzy i formantów w aplikacji, mapa interfejsu użytkownika można powiększyć bardzo duże.Ponadto jeśli kilka osób pracuje się na testach, aplikacja staje się niewygodna z pojedynczy duży plik mapy interfejsu użytkownika.
Korzystanie z wielu plików Map interfejsu użytkownika można wymienić następujące zalety:
Każda mapa można skojarzyć z podzbiorem logiczny aplikacji.Dzięki temu zmiany są łatwiejsze w zarządzaniu.
Każdego testera można pracować na części aplikacji i napisanego przez nich kodu bez zakłócania innych testerów pracy na innych częściach aplikacji.
Dodatki do interfejsu użytkownika aplikacji mogą być skalowane stopniowo z minimalny wpływ na testy dla innych części interfejsu użytkownika.
Czy potrzebujesz wielu map interfejsu użytkownika?
Tworzenie wielu map interfejsu użytkownika w każdym z tych rodzajów sytuacji:
Kilka zestawów złożonych kompozytowe formantów interfejsu użytkownika, które razem wykonać operację logiczne, takie jak strony rejestracji w witrynie sieci Web lub na stronie zakupu koszyk na zakupy.
Niezależny zbiór formantów, które są dostępne z różnych punktów aplikacji, takich jak Kreator z kilku stron operacji.Jeśli każda strona kreatora jest szczególnie złożone, można utworzyć oddzielne mapy interfejsu użytkownika dla każdej strony.
Dodawanie interfejsu użytkownika wiele map
Aby dodać mapę interfejsu użytkownika do projektu kodowane jako test interfejsu użytkownika
W Solution Explorer, aby utworzyć folder w projekcie badania kodowane jako interfejsu użytkownika, aby przechowywać wszystkie mapy interfejsu użytkownika, kliknij prawym przyciskiem myszy plik projektu badania kodowane jako interfejsu użytkownika, wskaż polecenie Dodaj , a następnie wybierz Nowy Folder.Na przykład, może on nazwę UIMaps.
Nowy folder jest wyświetlany pod tego zakodowanej projektu interfejsu użytkownika.
Kliknij prawym przyciskiem myszy UIMaps folderu, wskaż polecenie Dodaj, a następnie wybierz polecenie Nowy element.
Add New Item zostanie wyświetlone okno dialogowe.
[!UWAGA]
Użytkownik musi być w zakodowanej projektu badania interfejsu użytkownika w celu dodania nowej mapy kodowane jako test interfejsu użytkownika.
Wybierz Kodowane interfejsu użytkownika Test mapa z listy.
W Nazwa wprowadź nazwę dla nowej mapy interfejsu użytkownika.Użyj nazwy składnika lub strony, które mapy przedstawia, na przykład, HomePageMap.
Wybierz przycisk Dodaj.
Visual Studio Minimalizuje okno i Kodowane interfejsu użytkownika Konstruktora Test zostanie wyświetlone okno dialogowe.
Zarejestruj akcje w przypadku pierwszej metody i wybierz polecenie Generuj kod.
Zamknij po została zarejestrowana wszystkie akcje i twierdzeń do pierwszej strony lub składnika i pogrupowane metody, Kodowane interfejsu użytkownika Konstruktora Test okno dialogowe.
Kontynuowanie tworzenia map interfejsu użytkownika.Rejestruje akcje i twierdzeń, grupując je w metody dla każdego składnika, a następnie wygeneruj kod.
W wielu przypadkach okno najwyższego poziomu aplikacji pozostaje stała dla wszystkich kreatorów, formularzy i stron.Chociaż w każdej mapie interfejsu użytkownika jest klasa dla okna najwyższego poziomu, wszystkie mapy prawdopodobnie odnoszą się do tego samego okno najwyższego poziomu w ramach których wszystkie składniki aplikacji Uruchom.Kodowane jako interfejs użytkownika testy wyszukiwania dla formantów hierarchicznie od góry do dołu, od okno najwyższego poziomu, więc w złożonej aplikacji, okno prawdziwe najwyższego poziomu mogą się powtarzać w każdej mapie interfejsu użytkownika.Jeśli okno prawdziwe najwyższego poziomu jest duplikowany, wiele modyfikacji spowoduje, jeśli zmieni się to okno.Może to spowodować problemy z wydajnością podczas przełączania między mapami interfejsu użytkownika.
Aby zminimalizować ten efekt, można użyć CopyFrom() metodę w celu zapewnienia, że nowe okno najwyższego poziomu w tym mapy interfejsu użytkownika jest taka sama jak główne okno najwyższego poziomu.
Przykład
Poniższy przykład jest częścią klasę narzędziową, który zapewnia dostęp do każdego składnika i ich formantów podrzędnych, które są reprezentowane przez klas generowanych w różnych mapach interfejsu użytkownika.
Na przykład aplikacja sieci Web o nazwie Contoso ma stronę główną, stronę produktu i strony koszyk na zakupy.Każda z tych stron udostępniać wspólne okno najwyższego poziomu czyli okna przeglądarki.Jest mapa interfejsu użytkownika dla każdej strony, a klasa utility ma kod podobny do następującego:
using ContosoProject.UIMaps;
using ContosoProject.UIMaps.HomePageClasses;
using ContosoProject.UIMaps.ProductPageClasses;
using ContosoProject.UIMaps.ShoppingCartClasses;
namespace ContosoProject
{
public class TestRunUtility
{
// Private fields for the properties
private HomePage homePage = null;
private ProductPage productPage = null;
private ShoppingCart shoppingCart = null;
public TestRunUtility()
{
homePage = new HomePage();
}
// Properties that get each UI Map
public HomePage HomePage
{
get { return homePage; }
set { homePage = value; }
}
// Gets the ProductPage from the ProductPageMap.
public ProductPage ProductPageObject
{
get
{
if (productPage == null)
{
// Instantiate a new page from the UI Map classes
productPage = new ProductPage();
// Since the Product Page and Home Page both use
// the same browser page as the top level window,
// get the top level window properties from the
// Home Page.
productPage.UIContosoFinalizeWindow.CopyFrom(
HomePage.UIContosoWindowsIWindow);
}
return productPage;
}
}
// Continue to create properties for each page, getting the
// page object from the corresponding UI Map and copying the
// top level window properties from the Home Page.
}
Zobacz też
Informacje
Koncepcje
Weryfikowanie kodu przy użyciu kodowanych testów interfejsu użytkownika
Anatomia Test zakodowanej interfejsu użytkownika