Aracılığıyla paylaş


Windows App SDK ile oluşturulan WinUI uygulamalarını test edin

Bu konuda, WinUI 3 kullanıcı arabirimi (UI) özellikleri kullanılarak Windows App SDK ile oluşturulan uygulamalarda işlevselliği test etme ve doğrulama hakkında bazı öneriler sağlıyoruz. Test, uygulama geliştirme sürecinin önemli bir parçasıdır; hataları erken yakalamanıza, kod kalitesini korumanıza ve uygulamanız geliştikçe güvenilir bir kullanıcı deneyimi sağlamanıza yardımcı olur. Birim testlerini iş akışınıza ekleyerek kodu güvenle yeniden düzenleyebilir, yeni özellikler ekleyebilir ve mevcut işlevlerin beklendiği gibi çalışmaya devam ettiğini bilerek güncelleştirmeleri gönderebilirsiniz.

Eğitim: WinUI 3 birim testi projesi oluşturma.

Microsoft.UI.Xaml ad alanlarının altındaki nesne türlerinin çoğu, XAML uygulama işleminde ui iş parçacığından kullanılmalıdır. (WinUI 3 kullanmayan Windows App SDK ile oluşturulan uygulamaları test etme hakkında ayrıntılı bilgi için aşağıdaki WinUI dışı işlevselliği test etme bölümüne bakın.)

Uyarı

Test edilecek tüm kodları ana uygulama projesinden çekip bir kitaplık projesine yerleştirerek yeniden düzenlemenizi öneririz. Hem uygulama projeniz hem de birim testi projeniz bu kitaplık projesine başvurabilir. Bu bölümde, yerleşik birim testi proje şablonlarını kullanarak Visual Studio'da WinUI 3 uygulamaları için birim testlerinin nasıl oluşturulacağı açıklanmaktadır.

Uyarı

Burada açıklanan birim testi uygulaması bir WinUI 3 uygulaması bağlamında yazılmıştır. Bu, XAML çalışma zamanını gerektiren kodu yürüten tüm testler için gereklidir. Bu proje bir XAML UI İş Parçacığı oluşturup testleri çalıştıracaktır.

Bu eğitimde şunları öğreniyorsunuz:

  • Visual Studio'da bir WinUI Birim Testi Uygulaması projesi oluşturun.
  • Visual Studio Test Explorer kullanın.
  • Test için bir WinUI Sınıf Kitaplığı projesi ekleyin.
  • Visual Studio Test Gezgini ile testleri çalıştırın.

Önkoşullar

WinUI geliştirmesi için Visual Studio yüklemiş ve ayarlamış olmanız gerekir. Bkz . Hızlı başlangıç: Ortamınızı ayarlama ve bir WinUI 3 projesi oluşturma.

WinUI Birim Testi Uygulaması projesi oluşturma

Başlamak için bir birim testi projesi oluşturun. Proje türü, ihtiyacınız olan tüm şablon dosyalarıyla birlikte gelir.

  1. Visual Studio açın ve Başlangıç penceresinde Yeni bir proje oluştur seçin.

    > Visual Studio başlangıç penceresinin ekran görüntüsü.

  2. Yeni proje oluştur penceresinde projeleri C# olarak filtreleyin, Windows ve WinUI, WinUI Birim Testi Uygulaması şablonunu seçin ve ardından İleri

     'Yeni proje oluştur' penceresinin Visual Studio ekran görüntüsü.

  3. [İsteğe bağlı] Yeni projenizi yapılandırın penceresinde Proje adını, Çözüm adını ( Çözümü ve projeyi aynı dizine yerleştir) ve Projenizin Konumunu değiştirin.

  4. Oluştur'i seçin.

Test Gezgini ile testleri çalıştırma

Test projesini oluşturduğunuzda, testleriniz birim testlerinizi çalıştırmak için kullanılan Test Gezgini'nde görünür. Ayrıca testleri kategoriler halinde gruplandırabilir, test listesini filtreleyebilir, test çalma listelerini oluşturabilir, kaydedebilir ve çalıştırabilir, birim testlerinde hata ayıklayabilir ve (Visual Studio Enterprise'da) kod kapsamını analiz edebilirsiniz.

UnitTests.cs dosyası , Test Gezgini tarafından kullanılan birim testlerinin kaynak kodunu içerir. Varsayılan olarak, burada gösterilen temel örnek testler otomatik olarak oluşturulur:

namespace WinUITest1
{
   [TestClass]
   public class UnitTest1
   {
      [TestMethod]
      public void TestMethod1()
      {
         Assert.AreEqual(0, 0);
      }

      // Use the UITestMethod attribute for tests that need to run on the UI thread.
      [UITestMethod]
      public void TestMethod2()
      {
         var grid = new Grid();
         Assert.AreEqual(0, grid.MinWidth);
      }
   }
}
  1. Henüz yapmadıysanız çözümünüzü oluşturun. Bu, Visual Studio tüm kullanılabilir testleri "bulmasını" sağlar.

  2. Test Gezgini'ne gidin. Görünmüyorsa, Test menüsünü açın ve Test Gezgini'ni seçin (veya Ctrl + E, T tuşlarına basın).

    Visual Studio'daki Test menüsünün ekran görüntüsü.

  3. Testleri görüntüleyin. Test Gezgini penceresinde tüm düğümleri genişletin (bu noktada yalnızca örnek testler olacaktır).

     Varsayılan örnek testleri gösteren Visual Studio Test Gezgini penceresinin ekran görüntüsü.

  4. Testleri çalıştırın.

    • Tek tek test düğümlerine sağ tıklayın ve Çalıştır'ı seçin.
    • Bir test seçin ve Yürüt düğmesine basın veya Ctrl + R, T tuşlarına basın.
    • Tüm Testleri Görünümde Çalıştır düğmesine basın veya Ctrl + R, V tuşlarına basın.

     Çalıştır komutunun vurgulandığı test bağlam menüsünün gösterildiği Visual Studio Test Gezgini penceresinin ekran görüntüsü.

  5. Sonuçları İnceleme: Testler tamamlandıktan sonra sonuçlar Test Gezgini penceresinde gösterilir.

     Test Gezgini penceresinin Visual Studio test çalıştırması sonuçlarını gösteren ekran görüntüsü.

Test için Sınıf Kitaplığı projesi ekleme

  1. Birim testi çözümüne yeni bir proje ekleyin. Solution Explorer çözümü sağ tıklatın ve Add -> Yeni Proje... seçeneğini belirleyin. .

    Çözüm bağlam menüsünün, 'Proje Ekle/Yeni' ögesinin vurgulandığı ekran görüntüsü Visual Studio'da.

  2. Bu örnek için bir WinUI 3 sınıf kitaplığı projesi ekleyin. Yeni Proje penceresinde C#/Windows/WinUI'ye filtreleyin ve WinUI Sınıf Kitaplığı öğesini seçin.

    Visual Studio'da WinUI Sınıf Kitaplığı'nın vurgulandığı Yeni Proje penceresinin ekran görüntüsü

  3. İleri'yi seçin ve proje için bir ad girin (bu örnekte kullanacağızWinUIClassLibrary1) ve Oluştur'a basın.

     Solution Explorer'da vurgulanan yeni 'WinUI Sınıf Kitaplığı' projesinin bir ekran görüntüsü ve kod düzenleyicisinde açık olan Class1.cs dosyası.

  4. Projeye yeni bir UserControl ekleyin. Solution Explorer yeni eklediğiniz WinUI 3 sınıf kitaplığı projesine sağ tıklayın ve bağlam menüsünden Add -> Yeni Öğe öğesini seçin.

    Çözüm bağlam menüsünün Visual Studio'da

  5. Yeni Öğe Ekle penceresinde, Yüklü öğeler listesinde WinUI düğümünü seçin ve ardından sonuçlardan Kullanıcı Denetimi'ni seçin. Denetimi UserControl1olarak adlandırın.

    Yeni Öğe Ekle penceresinin ekran görüntüsü; WinUI\/Kullanıcı Denetimi (WinUI) Visual Studio'da vurgulanmış.

  6. UserControl1.xaml.cs code-behind dosyasını açın. Bu örnekte, yalnızca bir tamsayı döndüren adlı GetSeven yeni bir genel yöntem ekleyeceğiz.

    namespace WinUICLassLibrary1
    {
      public sealed partial class UserControll : UserControl
      {
         public UserControl1()
         {
             this.InitializeComponent();
         }
    
         public int GetSeven()
         {
             return 7;
         }
      }
    }
    
  7. WinUI 3 sınıf kitaplığı projesinden tür kullanımını etkinleştirmek için WinUI 3 Sınıf Kitaplığı projesini birim testi projesinin bağımlılığı olarak ayarlayın. Solution Explorer'da, sınıf kitaplığı projesinin altında Dependencies sağ tıklayın ve Add Project Reference öğesini seçin.

    Bağımlılıklar bağlam menüsünde Proje Referansı Ekle seçeneğinin vurgulandığı ekran görüntüsü Visual Studio.

    WinUIClassLibrary1 listesinden öğeyi seçin.

    'WinUIClassLibrary1' projesinin seçili olduğu Başvuru Yöneticisi iletişim kutusunun ekran görüntüsü.

  8. UnitTests.cs'de yeni bir test yöntemi oluşturun. Bu test durumu bir XAML UI İş Parçacığının çalıştırılmasını gerektirdiğinden, bunu standart [TestMethod] özniteliği yerine [UITestMethod] özniteliğiyle işaretleyin.

    [UITestMethod]
    public void TestUserControl1()
    {
       WinUIClassLibrary1.UserControl1 userControl1 = new WinUIClassLibrary1.UserControl1();
       Assert.AreEqual(7, userControl1.GetSeven());
    }
    

    Bu yeni test yöntemi artık Test Gezgini'nde birim testlerinizden biri olarak görünür.

    Yeni birim testiyle varsayılan örnek testleri gösteren Visual Studio Test Gezgini penceresinin ekran görüntüsü.

  9. Testleri çalıştırın.

  • Yeni test düğümüne sağ tıklayın ve Çalıştır'ı seçin.
  • Yeni testi seçin ve Yürüt düğmesine basın veya Ctrl + R, T tuşlarına basın.
  • Tüm Testleri Görünümde Çalıştır düğmesine basın veya Ctrl + R, V tuşlarına basın.

 Varsayılan örnek testlerin ve yeni birim testinin tamamlanmış test çalıştırmasını gösteren Visual Studio Test Gezgini penceresinin ekran görüntüsü.

WinUI dışı işlevselliği test etme

Çoğu durumda, bir uygulama Microsoft.UI.Xaml türlerine bağımlı olmayan ancak yine de test edilmesi gereken işlevler içerir. MSTest, NUnit ve xUnit gibi .NET kodunu test etmek için çeşitli araçlar sağlanır. .NET uygulamalarını test etme hakkında daha fazla bilgi için bkz. testing in .NET.

Visual Studio'da, Çözüm Gezgini'nde çözümünüze sağ tıklayarak bu test araçlarından herhangi biri için yeni bir proje oluşturabilirsiniz. Bağlam menüsünden Add - New Project seçeneğini seçerek Tüm Diller, ardından Windows, Test ve Tüm Proje Türleri seçicisinden uygun test aracını seçin (MSTest Test Projesi, NUnit Test Projesi veya xUnit Test Projesi).

WinUI 3 projesine başvuran yeni bir MSTest, NUnit veya xUnit projesi oluştururken şunlar gerekir:

  1. Test projenizin .csproj dosyasında TargetFramework öğesini güncelleyin. Bu değer WinUI 3 projesindeki değeriyle TargetFramework eşleşmelidir. Varsayılan olarak MSTest, NUnit ve xUnit projeleri .NET tarafından desteklenen tüm platform aralığını hedefler, ancak WinUI 3 projesi yalnızca Windows destekler ve daha özel bir TargetFramework'e sahiptir.

    Örneğin, .NET 8 hedefleniyorsa, birim testi projesinin TargetFramework değerini <TargetFramework>net8.0</TargetFramework>'den <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework> olarak güncelleştirin.

  2. Test projenizdeki RuntimeIdentifiers'i güncelleştirin.

    <RuntimeIdentifiers Condition="$([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')) &gt;= 8">win-x86;win-x64;win-arm64</RuntimeIdentifiers>

    <RuntimeIdentifiers Condition="$([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')) &lt; 8">win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>

  3. Testin Windows App SDK çalışma zamanını yüklediğinden emin olmak için test projenizin .csproj dosyasındaki PropertyGroup aşağıdaki özelliği ekleyin: <WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>

  4. Windows App SDK çalışma zamanının testi çalıştıran makineye yüklendiğinden emin olun. Windows App SDK dağıtımı hakkında daha fazla bilgi için, çerçeveye bağımlı uygulamaların dış konumla (veya paketlenmemiş) paketlenmesi ile ilgili Windows App SDK dağıtım kılavuzuna bakın.

Ek kaynaklar