Udostępnij za pośrednictwem


Testowanie dużej aplikacji przy użyciu wielu map UI

W tym temacie opisano sposób użycia kodowane testy interfejsu użytkownika, jeśli testujesz dużej aplikacji za pomocą wielu map interfejsu użytkownika.

Wymagania

  • Visual Studio Ultimate, Visual Studio Premium

Podczas tworzenia nowego kodowane testów interfejsu użytkownika, Visual Studio Struktura testowania generuje kod dla testu domyślnie w UIMap klasy.Aby uzyskać więcej informacji na temat sposobu rejestrowania kodowane testy interfejsu użytkownika, Tworzenie kodowanych testów interfejsu użytkownika i Anatomia kodowanego testu interfejsu użytkownika.

Wygenerowany kod dla mapy interfejsu użytkownika zawiera klasę dla każdego obiektu, który test współdziała z.W przypadku każdej metody wygenerowanego klasę pomocnika dla parametrów metod jest generowany specjalnie dla tej metody.W przypadku dużej liczby obiektów, stron i formularzy i formantów w aplikacji na mapie interfejsu użytkownika można powiększać bardzo duże.Ponadto jeśli kilka osób pracuje testy, aplikacji staje się niewygodna z pojedynczy duży plik mapy interfejsu użytkownika.

Za pomocą wielu plików Map interfejsu użytkownika można określić następujące korzyści:

  • Każda mapa może zostać skojarzony z podzbiorem logiczny aplikacji.Dzięki temu zmiany są łatwiejsze do zarządzania.

  • Każdego tester może pracować nad części aplikacji i zaewidencjonuj swój kod bez zakłócania innych testerów pracy z innych części aplikacji.

  • Dodatki do interfejsu użytkownika aplikacji można skalować stopniowo z minimalny wpływ na testy dla innych części interfejsu użytkownika.

Czy potrzebujesz wielu map interfejsu użytkownika?

Utwórz kilka map interfejsu użytkownika w każdym z tych typów sytuacjach:

  • Kilka zestawów złożonych złożony formantów interfejsu użytkownika, które razem wykonuje operację logicznych, takich jak strony rejestracji w witrynie sieci Web lub na stronie Koszyk zakupu.

  • Niezależnie od zestawu formantów, które są dostępne z różnych punktów aplikacji, takich jak Kreator z wielu stronach operacji.Jeśli każdej strony kreatora jest szczególnie złożone, można utworzyć oddzielne map interfejsu użytkownika dla każdej strony.

Dodawanie wielu map interfejsu użytkownika

Aby dodać mapę interfejsu użytkownika z projektem kodowanych testów interfejsu użytkownika

  1. W Eksploratora rozwiązań, aby utworzyć folder w projekcie kodowanych testów interfejsu użytkownika do przechowywania wszystkich map interfejsu użytkownika, kliknij prawym przyciskiem myszy plik projektu testu kodowane 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 w obszarze kodowane projektu testowego interfejsu użytkownika.

  2. Kliknij prawym przyciskiem myszy UIMaps folderu, wskaż opcję Dodaj, a następnie wybierz Nowy element.

    Wyświetlane jest okno dialogowe Dodaj nowy element.

    [!UWAGA]

    Użytkownik musi należeć do kodowane projektu testowego interfejsu użytkownika, aby dodać kodowane mapy testów interfejsu użytkownika.

  3. Wybierz kodowanych mapy testów interfejsu użytkownika z listy.

    W Nazwa wprowadź nazwę nowej mapy interfejsu użytkownika.Użyj nazwy składnika lub strony reprezentująca mapy, na przykład HomePageMap.

  4. Wybierz Dodaj.

    Visual Studio Minimalizuje okno i kodowanych konstruktora testów interfejsu użytkownika zostanie wyświetlone okno dialogowe.

  5. Zarejestruj akcje w metodzie pierwszy i wybierz polecenie Generowanie kodu.

  6. Zamknij po rejestrowane wszystkie akcje i potwierdzeń do pierwszej strony lub składnika i ich zgrupowane jako metody kodowanych konstruktora testów interfejsu użytkownika okno dialogowe.

  7. Nadal można utworzyć map interfejsu użytkownika.Rejestruj działania i potwierdzeń, grupować w metody dla każdego składnika, a następnie generowania kodu.

W wielu przypadkach okna najwyższego poziomu aplikacji pozostaje stały dla wszystkich kreatorów, formularzy i stron.Mimo że każda mapa interfejsu użytkownika zawiera klasę dla okna najwyższego poziomu, wszystkich map są prawdopodobnie odwołujących się do tej samej okno najwyższego poziomu w obrębie wszystkich składników aplikacji Uruchom.Kodowane interfejsu użytkownika testy wyszukiwania dla kontrolek hierarchicznie od góry do dołu, począwszy od okna najwyższego poziomu, więc w aplikacji złożonych, okna rzeczywistych najwyższego poziomu może zostać zduplikowane w każdym mapy interfejsu użytkownika.Okno rzeczywistych najwyższego poziomu jest zduplikowany, wiele modyfikacji spowoduje po zmianie tego okna.Może to spowodować problemy z wydajnością podczas przełączania między map interfejsu użytkownika.

Aby zminimalizować efekt, można użyć CopyFrom() metodę w celu zapewnienia, że w nowym oknie najwyższego poziomu, mapy interfejsu użytkownika jest taka sama jak główne okno najwyższego poziomu.

Przykład

Poniższy przykład jest częścią narzędzia klasę, która zapewnia dostęp do każdej części i ich kontrolek podrzędnych, które są reprezentowane przez klasy generowane w różnych map interfejsu użytkownika.

Na przykład aplikacja sieci Web o nazwie Contoso ma strony głównej, strony produktów oraz strony koszyka zakupów.Każdy z tych stron udostępniać wspólne okno najwyższego poziomu, który jest okna przeglądarki.Występuje mapę interfejsu użytkownika dla każdej strony, a klasa utility zawiera 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

UIMap

CopyFrom

Koncepcje

Weryfikowanie kodu przy użyciu automatyzacji interfejsu użytkownika

Anatomia kodowanego testu interfejsu użytkownika

Inne zasoby

Tworzenie kodowane testy interfejsu użytkownika