Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
Visual Studio açın ve Başlangıç penceresinde Yeni bir proje oluştur seçin.
Yeni proje oluştur penceresinde projeleri C# olarak filtreleyin, Windows ve WinUI, WinUI Birim Testi Uygulaması şablonunu seçin ve ardından İleri
[İ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.
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);
}
}
}
Henüz yapmadıysanız çözümünüzü oluşturun. Bu, Visual Studio tüm kullanılabilir testleri "bulmasını" sağlar.
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).
Testleri görüntüleyin. Test Gezgini penceresinde tüm düğümleri genişletin (bu noktada yalnızca örnek testler olacaktır).
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.
Sonuçları İnceleme: Testler tamamlandıktan sonra sonuçlar Test Gezgini penceresinde gösterilir.
Test için Sınıf Kitaplığı projesi ekleme
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. .
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.
İleri'yi seçin ve proje için bir ad girin (bu örnekte kullanacağız
WinUIClassLibrary1) ve Oluştur'a basın.
Projeye yeni bir
UserControlekleyin. 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.
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.
UserControl1.xaml.cs code-behind dosyasını açın. Bu örnekte, yalnızca bir tamsayı döndüren adlı
GetSevenyeni bir genel yöntem ekleyeceğiz.namespace WinUICLassLibrary1 { public sealed partial class UserControll : UserControl { public UserControl1() { this.InitializeComponent(); } public int GetSeven() { return 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.
WinUIClassLibrary1listesinden öğeyi seçin.
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.
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.
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:
Test projenizin .csproj dosyasında
TargetFrameworköğesini güncelleyin. Bu değer WinUI 3 projesindeki değeriyleTargetFrameworkeş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.Test projenizdeki RuntimeIdentifiers'i güncelleştirin.
<RuntimeIdentifiers Condition="$([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')) >= 8">win-x86;win-x64;win-arm64</RuntimeIdentifiers><RuntimeIdentifiers Condition="$([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')) < 8">win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>Testin Windows App SDK çalışma zamanını yüklediğinden emin olmak için test projenizin .csproj dosyasındaki
PropertyGroupaşağıdaki özelliği ekleyin:<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>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
- Birim testi temel bilgileri
- Visual Studio'da Test araçları
Windows developer