Bagikan melalui


Menulis pengujian unit untuk C/C++ di Visual Studio

Anda dapat menulis dan menjalankan pengujian unit C++ Anda dengan menggunakan jendela Test Explorer. Ini berfungsi seperti yang dilakukan untuk bahasa lain. Untuk informasi lebih lanjut tentang menggunakan Test Explorer, lihat Menjalankan pengujian unit dengan Test Explorer.

Nota

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++
  • Google Test
  • Boost.Test
  • CTest

Anda dapat menggunakan kerangka kerja yang diinstal, atau menulis adaptor pengujian Anda sendiri untuk kerangka kerja apa pun yang ingin Anda gunakan dalam Visual Studio. Adaptor pengujian mengintegrasikan tes unit dengan jendela Test Explorer. Beberapa adaptor non-Microsoft tersedia di Visual Studio Marketplace. Untuk informasi selengkapnya, lihat Menginstal kerangka kerja pengujian unit.

  • Visual Studio 2017 dan yang lebih baru (Profesional dan Perusahaan)

    Proyek unit test C++ mendukung CodeLens.

  • Visual Studio 2017 dan yang lebih baru (semua edisi)

    • Google Test Adapter disertakan sebagai komponen default dari 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> Proyek Baru pada menu pintasan untuk menambahkan templat proyek. Ini juga memiliki opsi yang dapat Anda konfigurasi dengan menggunakan Alat>Opsi. Untuk informasi selengkapnya, lihat Cara: Menggunakan Google Test di Visual Studio.

    • Boost.Test disertakan sebagai komponen default dari pengembangan Desktop dengan beban kerja C++. Ini terintegrasi dengan Test Explorer, tetapi saat ini tidak memiliki templat proyek. Anda harus mengonfigurasinya secara manual. Untuk informasi selengkapnya, lihat Cara: Menggunakan Boost.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 adaptor Google Test dan ekstensi Adaptor Boost.Test di Visual Studio Marketplace. Temukan mereka di adaptor pengujian untuk Boost.Test dan adaptor pengujian untuk Google Test.

Tip

Anda juga dapat menggunakan perintah Copilot /tests slash 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 Copilot Chat.

Alur kerja pengujian dasar

Bagian berikut menunjukkan langkah-langkah dasar untuk memulai pengujian unit C++. Konfigurasi dasar 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 di executable Anda 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:

  1. Klik kanan pada node Solusi di Penjelajah Solusi.
  2. Di menu konteks, pilih Tambahkan>Proyek Baru.
  3. Atur Bahasa ke C++ dan ketik test di kotak pencarian. Tangkapan layar berikut menunjukkan proyek pengujian yang tersedia saat Desktop Development dengan C++ dan komponen Pengembangan UWP diinstal:

Cuplikan layar memperlihatkan jendela Tambahkan proyek baru dengan C++ dipilih di Visual Studio 2022.

Membuat proyek pengujian di Visual Studio 2019

Tentukan dan jalankan pengujian di dalam satu atau beberapa proyek pengujian. Buat proyek dalam solusi yang sama dengan kode yang ingin Anda uji.

Untuk menambahkan proyek pengujian baru ke solusi yang sudah ada:

  1. Klik kanan pada node Solusi di Penjelajah Solusi.
  2. Di menu konteks, pilih Tambahkan>Proyek Baru.
  3. Atur Bahasa ke C++ dan ketik test di kotak pencarian. Cuplikan layar berikut menunjukkan proyek pengujian yang tersedia saat Pengembangan Desktop dengan C++, dan beban kerja Pengembangan UWP diinstal:

Cuplikan layar memperlihatkan jendela Tambahkan proyek baru dengan C++ dipilih di Visual Studio 2019.

Membuat referensi ke proyek lain dalam solusi

Untuk mengaktifkan akses ke fungsi dalam proyek yang sedang diuji, tambahkan referensi ke proyek di proyek pengujian Anda. Di Penjelajah Solusi, perluas proyek pengujian Anda. Klik kanan Referensi lalu pilih Tambahkan>Referensi. Dalam kotak dialog Tambahkan referensi, pilih proyek yang ingin Anda uji.

Cuplikan layar memperlihatkan kotak dialog Tambahkan Referensi di Visual Studio 2022.

Jika kode pengujian tidak mengekspor fungsi yang ingin Anda uji, tambahkan .obj output atau file .lib ke dependensi proyek pengujian. Untuk informasi selengkapnya, lihat Untuk menautkan pengujian ke file objek atau pustaka. Jangan sertakan file objek yang memiliki fungsi main 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.

Tambahkan direktif #include untuk file header

Dalam file .cpp pengujian unit Anda, tambahkan direktif #include untuk file header apa pun yang mendeklarasikan jenis dan fungsi yang ingin Anda uji. Ketik #include ", lalu IntelliSense diaktifkan untuk membantu Anda memilih. Ulangi untuk header lainnya.

Cuplikan layar memperlihatkan Penjelajah Solusi dengan pernyataan #include dengan IntelliSense menyoroti file header di Visual Studio 2022.

Tips

Untuk menghindari harus mengetik jalur lengkap di setiap pernyataan include dalam file sumber, tambahkan folder yang diperlukan di Proyek >Properti>C/C++>General>Direktori Sertakan Tambahan.

Menulis metode pengujian

Nota

Bagian ini memperlihatkan sintaks untuk Kerangka Kerja Pengujian Unit Microsoft untuk C/C++. Untuk informasi selengkapnya, lihat referensi untuk API Microsoft.VisualStudio.TestTools.CppUnitTestFramework.

Untuk dokumentasi Google Test, lihat pengantar Google Test. Untuk Boost.Test, lihat Boost Test library: 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.

Cuplikan layar memperlihatkan kelas dan metode stub menggunakan makro TEST_CLASS dan TEST_METHOD di Visual Studio 2022.

Cuplikan layar memperlihatkan kelas dan metode stub menggunakan makro TEST_CLASS dan TEST_METHOD di Visual Studio 2019.

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

TEST_METHOD mengembalikan tanpa nilai. 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 pengujian

  1. Pada menu Test, pilih Test Explorer. Ilustrasi berikut menunjukkan proyek pengujian sebelum Anda menjalankan pengujian.

    Cuplikan layar memperlihatkan Test Explorer sebelum menjalankan pengujian di Visual Studio 2022.

    Cuplikan layar memperlihatkan Test Explorer sebelum menjalankan pengujian di Visual Studio 2019.

    Nota

    Integrasi CTest dengan Test Explorer belum tersedia. Jalankan pengujian CTest dari menu utama CMake.

  2. Jika salah satu pengujian Anda hilang dari jendela, bangun proyek pengujian dengan mengklik kanan simpulnya di Penjelajah Solusi dan memilih Bangun atau Bangun Ulang.

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

    Cuplikan layar memperlihatkan Test Explorer setelah pengujian dijalankan di Visual Studio 2022.

    Cuplikan layar memperlihatkan Test Explorer setelah pengujian dijalankan di Visual Studio 2019.

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 Profesional dan Perusahaan)

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 buat proyek atau solusi pengujian Anda.
  • Membangun kembali proyek atau solusi Anda.
  • Jalankan pengujian dari jendela Test Explorer.

Setelah menginisialisasi CodeLens, Anda dapat melihat ikon status pengujian di atas setiap pengujian unit.

Cuplikan layar memperlihatkan ikon C++ CodeLens di Visual Studio 2019.

Pilih ikon untuk informasi selengkapnya, atau untuk menjalankan atau men-debug pengujian unit:

Cuplikan layar menampilkan ikon C++ CodeLens setelah Anda memilihnya untuk detailnya di Visual Studio 2022.