Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam topik ini kami memberikan beberapa rekomendasi tentang cara menguji dan memvalidasi fungsionalitas dalam aplikasi yang dibuat dengan fitur antarmuka pengguna (UI) Windows App SDK menggunakan WinUI 3 antarmuka pengguna (UI). Pengujian adalah bagian penting dari proses pengembangan aplikasi—ini membantu Anda menangkap bug lebih awal, menjaga kualitas kode, dan memastikan pengalaman pengguna yang andal saat aplikasi Anda berkembang. Dengan menggabungkan pengujian unit ke dalam alur kerja Anda, Anda dapat dengan yakin merefaktor kode, menambahkan fitur baru, dan mengirim pembaruan yang mengetahui bahwa fungsionalitas yang ada terus berfungsi seperti yang diharapkan.
Tutorial: Membuat proyek pengujian unit WinUI 3.
Sebagian besar jenis objek di bawah namespace Microsoft.UI.Xaml harus digunakan dari utas UI dalam proses aplikasi XAML. (Untuk detail tentang menguji aplikasi yang dibuat dengan Windows App SDK yang tidak menggunakan WinUI 3, lihat bagian berikut, Testing fungsionalitas non-WinUI.)
Nota
Sebaiknya Anda merefaktor kode apa pun untuk diuji dengan memindahkannya dari proyek aplikasi utama dan menempatkannya ke dalam proyek library. Proyek aplikasi dan proyek pengujian unit Anda kemudian dapat mereferensikan proyek pustaka tersebut. Bagian ini menjelaskan cara membuat pengujian unit untuk aplikasi WinUI 3 di Visual Studio menggunakan templat proyek pengujian unit bawaan.
Nota
Aplikasi pengujian unit yang dijelaskan di sini ditulis dalam konteks aplikasi WinUI 3. Ini diperlukan untuk setiap pengujian yang menjalankan kode yang memerlukan runtime XAML. Proyek ini akan membuat UI Thread XAML dan menjalankan pengujian.
Dalam tutorial ini, Anda akan belajar cara:
- Buat proyek WinUI Unit Test App di Visual Studio.
- Gunakan Visual Studio Test Explorer.
- Tambahkan proyek Pustaka Kelas WinUI untuk pengujian.
- Jalankan pengujian dengan Visual Studio Test Explorer.
Prasyarat
Anda harus memiliki Visual Studio diinstal dan disiapkan untuk pengembangan WinUI. Lihat Mulai cepat: Menyiapkan lingkungan Anda dan membuat proyek WinUI 3.
Buat proyek Aplikasi Uji Unit WinUI
Untuk memulai, buat proyek pengujian unit. Jenis proyek dilengkapi dengan semua file templat yang Anda butuhkan.
Buka Visual Studio dan pilih Buat proyek baru di jendela Mulai.
Di jendela Buat proyek baru, filter proyek ke C#, Windows, dan WinUI, pilih templat WinUI Unit Test App, lalu pilih Baru
[Opsional] Pada jendela Konfigurasikan proyek baru Anda, ubah Nama proyek, Nama solusi (hapus centang tempat solusi dan proyek di direktori yang sama) dan Lokasi proyek Anda.
Pilih Buat.
Menjalankan pengujian dengan Test Explorer
Saat Anda membuat proyek pengujian, pengujian Anda muncul di Test Explorer, yang digunakan untuk menjalankan pengujian unit Anda. Anda juga dapat mengelompokkan pengujian ke dalam kategori, memfilter daftar pengujian, membuat, menyimpan, dan menjalankan daftar putar pengujian, pengujian unit debug, dan (di Visual Studio Enterprise) menganalisis cakupan kode.
File UnitTests.cs berisi kode sumber untuk pengujian unit yang digunakan oleh Test Explorer. Secara default, pengujian sampel dasar yang ditunjukkan di sini dibuat secara otomatis:
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);
}
}
}
Jika Anda belum melakukannya, bangun solusi Anda. Ini akan memungkinkan Visual Studio untuk "menemukan" semua pengujian yang tersedia.
Buka Test Explorer. Jika tidak terlihat, buka menu Uji , lalu pilih Test Explorer (atau tekan Ctrl + E, T).
Lihat pengujian. Di jendela Test Explorer, perluas semua simpul (hanya tes sampel yang akan ada pada saat ini).
Jalankan pengujian.
- Klik kanan pada simpul pengujian individual dan pilih Jalankan.
- Pilih pengujian dan tekan tombol Putar atau tekan Ctrl + R, T.
- Tekan tombol Jalankan Semua Pengujian Dalam Tampilan atau tekan Ctrl + R, V.
Tinjau hasil. Setelah pengujian selesai, hasil ditampilkan di jendela Test Explorer .
Menambahkan proyek Pustaka Kelas untuk pengujian
Tambahkan proyek baru ke solusi pengujian unit. Di Solution Explorer, klik kanan solusi dan pilih Tambahkan -> Proyek Baru... .
Untuk contoh ini, tambahkan proyek pustaka kelas WinUI 3. Dari jendela Proyek Baru, filter menggunakan C#/Windows/WinUI dan pilih Pustaka Kelas WinUI.
Pilih Berikutnya dan masukkan nama untuk proyek (untuk contoh ini kami gunakan
WinUIClassLibrary1) dan tekan Buat.
Tambahkan sebuah
UserControlbaru ke proyek. Di Solution Explorer, klik kanan pada proyek pustaka kelas WinUI 3 yang baru saja Anda tambahkan dan pilih Tambahkan -> Item Baru dari menu konteks.
Di jendela Tambahkan Item Baru , pilih simpul WinUI di daftar Item terinstal lalu pilih Kontrol Pengguna dari hasil. Beri nama kontrol
UserControl1.
Buka file kode-balik UserControl1.xaml.cs. Untuk contoh ini, kami menambahkan metode publik baru yang disebut
GetSevenhanya mengembalikan bilangan bulat.namespace WinUICLassLibrary1 { public sealed partial class UserControll : UserControl { public UserControl1() { this.InitializeComponent(); } public int GetSeven() { return 7; } } }Atur proyek Pustaka Kelas WinUI 3 sebagai dependensi proyek uji unit untuk memungkinkan penggunaan tipe dari proyek Pustaka Kelas WinUI 3. Di Solution Explorer, di bawah proyek pustaka kelas, klik kanan pada Dependensi dan pilih Tambahkan Referensi Proyek.
WinUIClassLibrary1Pilih item dari daftar Proyek.
Buat metode pengujian baru di UnitTests.cs. Karena kasus pengujian ini memerlukan Thread UI XAML untuk dijalankan, tandai dengan atribut
[UITestMethod]alih-alih aturan standar[TestMethod].[UITestMethod] public void TestUserControl1() { WinUIClassLibrary1.UserControl1 userControl1 = new WinUIClassLibrary1.UserControl1(); Assert.AreEqual(7, userControl1.GetSeven()); }Metode pengujian baru ini sekarang muncul di Test Explorer sebagai salah satu pengujian unit Anda.
Jalankan pengujian.
- Klik kanan simpul pengujian baru dan pilih Jalankan.
- Pilih pengujian baru dan tekan tombol Putar atau tekan Ctrl + R, T.
- Tekan tombol Jalankan Semua Pengujian Dalam Tampilan atau tekan Ctrl + R, V.
Menguji fungsionalitas non-WinUI
Dalam banyak kasus, aplikasi menyertakan fungsionalitas yang tidak bergantung pada jenis Microsoft.UI.Xaml tetapi masih memerlukan pengujian. Berbagai alat tersedia untuk menguji kode .NET, termasuk MSTest, NUnit dan xUnit. Untuk detail selengkapnya tentang pengujian aplikasi .NET, lihat Testing di .NET.
Di Visual Studio, Anda dapat membuat proyek baru untuk salah satu alat pengujian ini dengan mengklik kanan solusi Anda di Solution Explorer, memilih Tambahkan -> Proyek Baru dari menu konteks, memilih C# dari bahasa Semua bahasa pemilih/Windows dari Semua bahasa pemilih/Test dari Semua jenis proyek pemilih, lalu pilih alat pengujian yang sesuai dari daftar (MSTest Test Project, NUnit Test Project atau xUnit Test Project).
Saat membuat proyek MSTest, NUnit, atau xUnit baru yang mereferensikan proyek WinUI 3, Anda harus:
Perbarui
TargetFrameworkdi file .csproj dari proyek pengujian Anda. Nilai ini harus cocok denganTargetFrameworkdalam proyek WinUI 3. Secara default, proyek MSTest, NUnit dan xUnit menargetkan berbagai platform yang didukung oleh .NET, tetapi proyek WinUI 3 hanya mendukung Windows dan memiliki TargetFramework yang lebih spesifik.Misalnya, jika menargetkan .NET 8, perbarui TargetFramework proyek pengujian unit dari
<TargetFramework>net8.0</TargetFramework>menjadi<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>.Perbarui RuntimeIdentifiers di proyek pengujian Anda.
<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>Tambahkan properti berikut ke
PropertyGroupdalam file .csproj proyek pengujian Anda untuk memastikan bahwa pengujian memuat runtime Windows App SDK:<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>Pastikan bahwa runtime Windows App SDK diinstal pada komputer yang menjalankan pengujian. Untuk informasi selengkapnya tentang penyebaran Windows App SDK, lihat panduan penyebaran Windows App SDK untuk aplikasi yang bergantung pada kerangka kerja yang dikemas dengan lokasi eksternal (atau tidak dikemas).
Sumber daya tambahan
Windows developer