Aracılığıyla paylaş


Birden Çok UI Haritası Bulunan Büyük Uygulamaları Sınama

Bu konu birden çok UI eşlemesi kullanarak büyük bir uygulamayı test ederken kodlanmış UI testlerin nasıl kullanılabileceğini açıklamaktadır.

Gereksinimler

  • Visual Studio Ultimate, Visual Studio Premium

Yeni bir kodlanmış UI Testi oluşturduğunuzda Visual Studio test framework'ü varsayılan olarak test için kodu bir UIMap sınıfı içinde oluşturur.Kodlanmış UI testlerinin kaydedilmesi hakkında daha fazla bilgi için bkz. Kodlanmış UI testleri oluşturma ve Kodlanmış UI testinin anatomisi.

UI eşlemesi için oluşturulan kod testin etkileşimde olduğu her nesne için bir sınıf içerir.Üretilen her yöntem için özellikle bu yöntem için, yöntem parametreleri için bir yardımcı sınıfı oluşturulur.Uygulamanızda fazla sayıda nesne, sayfa, biçim ve denetim bulunuyorsa UI eşlemeniz çok büyüyebilir.Ayrıca, test üstünde birkaç kişi çalışıyorsa, uygulama, büyük tek bir UI Eşleşme dosyası ile hantal hale gelir.

Birden çok UI eşleme dosyası kullanmak aşağıdaki yararları sağlayabilir:

  • Her eşleşme, uygulamanın mantıksal bir alt kümesiyle ilişkilendirilebilir.Bu, değişiklikleri kolay bir biçimde yönetilebilir kılar.

  • Her test edici uygulamanın bir bölümü üzerinde çalışır ve kodlarını uygulamanın diğer bölümleri üzerinde çalışan test edicileri engellemeden iade eder.

  • Uygulama UI'sına yapılan eklemeler, UI'nın diğer kısımlarına yönelik testler üzerinde en az düzeyde etkiyle kademeli olarak ölçeklendirilebilir.

Çoklu Kullanıcı Arabirimi Eşlemelerine İhtiyacınız Var mı?

Aşağıdaki durumlardan her biri için çoklu Kullanıcı Arabirimi Eşleştirmeleri oluşturun:

  • Bir Web sitesindeki kayıt sayfası veya alışveriş sepeti satın alma sayfası gibi birlikte mantıksal bir işlemi gerçekleştiren çeşitli bileşik UI kontrolü karmaşık kümesi.

  • Birkaç sayfalık işleme sahip bir sihirbaz gibi uygulamanın çeşitli noktalarından erişilen bağımsız denetimler kümesi.Sihirbazın her sayfası özellikle karmaşık ise, her sayfa için ayrı UI haritaları oluşturabilirsiniz.

Birden Çok UI Haritası Ekleme

Kodlanmış UI test projenize UI eşlemesi eklemek için

  1. İçinde Çözüm GezginiUI Haritaları'nı saklamak, kodlanmış UI test projesi dosyasını sağ tıklatın, işaret kodlanmış UI test projenizdeki bir klasör oluşturmak için Ekle ve sonra Yeni bir klasör.Örneğin, UIMaps olarak adlandırabilirsiniz.

    Yeni klasör kodlanmış UI test projesi altında görüntülenir.

  2. Sağ UIMaps klasörü, üzerine Ekleve sonra seçin Yeni madde.

    Yeni Öğe Ekle iletişim kutusu görüntülenir.

    [!NOT]

    Yeni bir kodlanmış UI test eşlemesi eklemek için kodlanmış UI test projesi içinde olması gerekir.

  3. Listeden Kodlu UI Test Eşlemi'ni seçin.

    Ad kutusuna yeni UI Eşlemesi'nin adını yazın.Eşlemenin temsil edeceği bileşen veya sayfanın adını kullanın, örneğin, HomePageMap.

  4. Ekle öğesini seçin.

    The Visual Studio penceresi küçülür ve Kodlanmış IU Test Oluşturucusu iletişim kutusu görüntülenir.

  5. İlk yönteme ilişkin eylemleri kaydedin ve seçin Kod Üret.

  6. İlk bileşen veya sayfa için tüm eylemleri ve onayları kaydedip yöntemler halinde gruplandırdıktan sonra, Kodlanmış UI Testi Oluşturucusu iletişim kutusunu kapatın.

  7. Kullanıcı Arabirimi Haritalarını oluşturmaya devam edin.Eylemleri ve onaylamaları kaydedin, bunları her bileşen için yöntemler olarak gruplayın ve ardından kodu oluşturun.

Çoğu durumda, tüm sihirbazlar, biçimler ve sayfalar için uygulamanızın üst düzey penceresi sabit kalır.Her ne kadar her UI Eşleşmesinin üst düzey penceresi için bir sınıfı olsa da, tüm eşleşmeler muhtemelen içinde uygulamanıza ait tüm bileşenlerin çalıştığı aynı üst düzey pencereye başvuruyordur.Kodlanmış Kullanıcı Arabirimi testleri, üst düzey pencereden başlayarak, hiyerarşik olarak yukarıdan aşağıya doğru olan denetimleri arar, dolayısıyla karmaşık bir uygulama içerisinde gerçek üst düzey pencere her bir Kullanıcı Arabirimi üzerinde yinelenebilir.Gerçek üst düzey pencere çoğaltılmışsa, bu pencere değiştiğinde çoklu değişiklikler oluşur.UI Eşlemelerin birinden diğerine geçtiğinizde bu durum performans sorunlarına neden olabilir.

Bu etkiyi en aza indirgemek için o UI Eşlemesi'ndeki yeni üst seviye penceresinin ana üst seviye penceresiyle aynı olmasını sağlamak üzere CopyFrom() yöntemini kullanabilirsiniz.

Örnek

Aşağıdaki örnek, her bileşene ve onların çeşitli UI Haritaları'nda oluşturulan sınıflar tarafından temsil edilen alt denetimlerine erişim sağlayan yardımcı program sınıfının bir parçasıdır.

Bu örnekte, bir Web uygulaması adı Contoso bir Giriş Sayfası, Ürün Sayfası ve bir Alışveriş Sepeti sayfası vardır.Bu sayfaların her biri tarayıcı penceresi olan ortak üst düzey penceresini paylaşır.Her sayfa için bir UI Eşleşmesi var ve yardımcı program sınıfı aşağıdakine benzer bir kod içerir:

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.
}

Ayrıca bkz.

Başvuru

UIMap

CopyFrom

Kavramlar

Kodlanmış Kullanıcı Arabirimi Testleri Kullanarak Kod Doğrulama

Kodlanmış UI testinin anatomisi

Diğer Kaynaklar

Kodlanmış UI testleri oluşturma