Tulis pengujian unit untuk C/C++ di Visual Studio
Anda dapat menulis dan menjalankan pengujian unit C++ menggunakan jendela Test Explorer. Ini berfungsi seperti yang dilakukan untuk bahasa lain. Untuk informasi selengkapnya tentang menggunakan Test Explorer, lihat Menjalankan pengujian unit dengan Test Explorer.
Catatan
Beberapa fitur seperti Pengujian Unit Langsung, Pengujian UI Berkode, dan IntelliTest tidak didukung untuk C++.
Visual Studio menyertakan kerangka kerja pengujian C++ ini tanpa unduhan tambahan yang diperlukan:
- Kerangka Kerja Pengujian Unit Microsoft untuk C++
- Uji Coba Google
- Boost.Test
- CTest
Anda dapat menggunakan kerangka kerja yang diinstal, atau menulis adapter pengujian Anda sendiri untuk kerangka kerja apa pun yang ingin Anda gunakan dalam Visual Studio. Adapter pengujian mengintegrasikan pengujian unit dengan jendela Test Explorer. Beberapa adapter pihak ketiga tersedia di Marketplace Visual Studio. Untuk informasi selengkapnya, lihat Menginstal kerangka kerja pengujian unit pihak ketiga.
Visual Studio 2017 dan yang lebih baru (Professional dan Enterprise)
Proyek pengujian unit C++ mendukung CodeLens.
Visual Studio 2017 and yang lebih baru (semua edisi)
Adapter Google Test disertakan sebagai komponen default Pengembangan desktop dengan beban kerja C++. Ini memiliki templat proyek yang dapat Anda tambahkan ke solusi. Klik kanan pada simpul solusi di Penjelajah Solusi dan pilih Tambahkan>Project Baru pada menu pintasan untuk menambahkan templat proyek. Ini juga memiliki opsi yang dapat Anda konfigurasi melaluiAlat>Opsi. Untuk informasi selengkapnya, lihat Cara: Menggunakan Google Test di Visual Studio.
Boost.Test disertakan sebagai komponen default Pengembangan desktop dengan beban kerja C++. Hal ini terintegrasi dengan Test Explorer, tetapi saat ini tidak memiliki templat proyek. Ini harus dikonfigurasi secara manual. Untuk informasi selengkapnya, lihat Cara: Menggunakan Google Test di Visual Studio.
Dukungan CTest disertakan dengan komponen alat C++ CMake, yang merupakan bagian dari Pengembangan desktop dengan beban kerja C++. Untuk informasi selengkapnya, lihat Cara: Menggunakan CTest di Visual Studio.
Versi Visual Studio yang lebih lama
Anda dapat mengunduh adapter Google Test dan ekstensi Adapter Boost.Test di Marketplace Visual Studio. Temukan di Adapter pengujian untuk Boost.Test dan Adapter pengujian untuk Google Test.
Tip
Anda juga dapat menggunakan perintah Garis miring Copilot /tests
untuk menghasilkan pengujian unit dari kode. Misalnya, Anda dapat mengetik /tests using Boost framework
untuk menghasilkan pengujian Boost.Test. Untuk informasi selengkapnya, lihat Menggunakan perintah garis miring di Obrolan Salinan.
Alur kerja pengujian dasar
Bagian berikut menunjukkan langkah-langkah dasar untuk memulai pengujian unit C++. Konfigurasi dasarnya mirip untuk kerangka kerja Microsoft dan Google Test. Boost.Test mengharuskan Anda membuat proyek pengujian secara manual.
Membuat proyek pengujian di Visual Studio 2022
Tentukan dan jalankan pengujian unit di dalam satu atau beberapa proyek pengujian. Proyek pengujian membuat aplikasi terpisah yang memanggil kode dalam file yang dapat dieksekusi dan melaporkan perilakunya. Buat proyek pengujian dalam solusi yang sama dengan kode yang ingin Anda uji.
Untuk menambahkan proyek pengujian baru ke solusi yang sudah ada,
- Klik kanan pada node Solusi di Penjelajah Solusi.
- Di menu pop-up, pilih Tambahkan>Proyek Baru.
- Atur Bahasa ke C++ dan ketik "uji" ke dalam kotak pencarian. Ilustrasi berikut menunjukkan proyek pengujian yang tersedia saat Pengembangan Desktop dengan C++ dan beban kerja Pengembangan UWP diinstal:
Membuat proyek pengujian di Visual Studio 2019
Menentukan dan menjalankan pengujian di dalam satu atau beberapa proyek pengujian. Membuat proyek dalam solusi yang sama dengan kode yang ingin Anda uji. Untuk menambahkan proyek pengujian baru ke solusi yang sudah ada,
- Klik kanan pada node Solusi di Penjelajah Solusi.
- Di menu pop-up, pilih Tambahkan>Proyek Baru.
- Atur Bahasa ke C++ dan ketik "uji" ke dalam kotak pencarian. Ilustrasi berikut menunjukkan proyek pengujian yang tersedia saat Pengembangan Desktop dengan C++ dan beban kerja Pengembangan UWP diinstal:
Membuat referensi ke proyek lain dalam solusi
Untuk mengaktifkan akses ke fungsi dalam proyek yang sedang diuji, tambahkan referensi ke proyek dalam proyek pengujian Anda. Klik kanan pada node proyek pengujian di Penjelajah Solusi pada menu pop-up. Pilih Tambahkan>Referensi. Dalam dialog Tambahkan Referensi, pilih proyek yang ingin Anda uji.
Menautkan ke file objek atau pustaka
Jika kode pengujian tidak mengekspor fungsi yang ingin Anda uji, tambahkan file output .obj atau .lib ke dependensi proyek pengujian. Untuk informasi selengkapnya, lihat Untuk menautkan pengujian ke file objek atau pustaka. Jangan sertakan file objek yang memiliki main
fungsi atau titik masuk standar lain seperti wmain
, , WinMain
atau DllMain
. Saat Anda menambahkan file sumber baru ke proyek Anda, perbarui dependensi proyek pengujian untuk menyertakan file objek yang sesuai.
Menambahkan arahan #include untuk file header
Selanjutnya, dalam file .cpp pengujian unit Anda, tambahkan arahan #include
untuk file header apa pun yang menjelaskan jenis dan fungsi yang ingin Anda uji. Ketik #include "
, lalu IntelliSense diaktifkan untuk membantu Anda memilih. Ulangi untuk header lainnya.
Untuk menghindari harus mengetik jalur lengkap di setiap pernyataan sertakan dalam file sumber, tambahkan folder yang diperlukan di Proyek>Properti>C/C++>Umum>Direktori Sertakan Tambahan.
Menulis metode pengujian
Catatan
Bagian ini memperlihatkan sintaks untuk Kerangka Kerja Pengujian Unit Microsoft untuk C/C++. Hal tersebut didokumentasikan di sini: Referensi API MICROSOFT.VisualStudio.TestTools.CppUnitTestFramework. Untuk dokumentasi Google Test, lihat Primer Google Test. Untuk Boost.Test, lihat Pustaka Boost Test: Kerangka kerja pengujian unit.
File .cpp dalam proyek pengujian Anda memiliki kelas stub dan metode yang ditentukan untuk Anda. Mereka menunjukkan contoh cara menulis kode pengujian. Tanda tangan menggunakan makro TEST_CLASS dan TEST_METHOD, yang membuat metode dapat ditemukan dari jendela Test Explorer.
TEST_CLASS dan TEST_METHOD adalah bagian dari Microsoft Native Test Framework. Test Explorer menemukan metode pengujian dalam kerangka kerja lain yang didukung dengan cara yang serupa.
TEST_METHOD mengembalikan void. Untuk menghasilkan hasil pengujian, gunakan metode statis di kelas Assert
untuk menguji hasil aktual terhadap hasil yang diharapkan. Dalam contoh berikut, asumsikan MyClass
memiliki konstruktor yang mengambil std::string
. Contoh ini menunjukkan bagaimana Anda dapat menguji bahwa konstruktor menginisialisasi kelas seperti yang Anda harapkan:
TEST_METHOD(TestClassInit)
{
std::string name = "Bill";
MyClass mc(name);
Assert::AreEqual(name, mc.GetName());
}
Dalam contoh sebelumnya, hasil panggilan Assert::AreEqual
menentukan apakah pengujian lulus atau gagal. Kelas Assert
berisi banyak metode lain untuk membandingkan hasil yang diharapkan dengan hasil aktual.
Anda dapat menambahkan sifat ke metode pengujian untuk menentukan pemilik pengujian, prioritas, dan informasi lainnya. Anda kemudian dapat menggunakan nilai-nilai ini untuk mengurutkan dan mengelompokkan pengujian di Test Explorer. Untuk informasi selengkapnya, lihat Menjalankan pengujian unit dengan Test Explorer.
Jalankan tes
Pada menu Pengujian, pilih Windows>Test Explorer. Ilustrasi berikut menunjukkan proyek pengujian yang pengujiannya belum berjalan.
Catatan
Integrasi CTest dengan Test Explorer belum tersedia. Jalankan pengujian CTest dari menu utama CMake.
Jika salah satu pengujian Anda hilang dari jendela, bangun proyek pengujian dengan mengeklik kanan node-nya di Penjelajah Solusi dan memilih Bangun atau Bangun Ulang.
Di Test Explorer, pilih Jalankan Semua, atau pilih pengujian tertentu yang ingin Anda jalankan. Klik kanan pada pengujian untuk opsi lain, termasuk menjalankannya dalam mode debug dengan titik henti diaktifkan. Setelah semua pengujian berjalan, jendela menunjukkan pengujian yang lulus dan yang gagal.
Untuk pengujian yang gagal, pesan menampilkan detail yang membantu mendiagnosis penyebabnya. Klik kanan pada pengujian yang gagal untuk menu pop-up. Pilih Debug untuk menelusuri fungsi tempat kegagalan terjadi.
Untuk informasi selengkapnya tentang menggunakan Test Explorer, lihat Menjalankan pengujian unit dengan Test Explorer.
Untuk informasi selengkapnya tentang pengujian unit, lihat Dasar-dasar pengujian unit.
Menggunakan CodeLens
Visual Studio 2017 dan yang lebih baru (edisi Professional dan Enterprise)
CodeLens memungkinkan Anda dengan cepat melihat status pengujian unit tanpa meninggalkan editor kode.
Inisialisasi CodeLens untuk proyek pengujian unit C++ dengan salah satu cara berikut:
- Edit dan bangun proyek atau solusi pengujian Anda.
- Bangun kembali proyek atau solusi Anda.
- Jalankan pengujian dari jendela Test Explorer.
Setelah diinisialisasi, Anda dapat melihat ikon status pengujian di atas setiap pengujian unit.
Pilih ikon untuk informasi selengkapnya, atau untuk menjalankan atau men-debug pengujian unit: