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.
Topik ini menunjukkan cara menggunakan fitur Generate From Usage yang mendukung pengembangan test-first.
Pengembangan test-first adalah pendekatan untuk desain perangkat lunak di mana Anda pertama kali menulis pengujian unit berdasarkan spesifikasi produk, dan kemudian menulis kode sumber yang diperlukan untuk membuat pengujian berhasil. Visual Studio mendukung pengembangan berbasis pengujian dengan membuat tipe dan anggota baru dalam kode sumber saat Anda pertama kali mereferensikannya dalam kasus pengujian Anda, sebelum mereka ditentukan.
Visual Studio menghasilkan jenis dan anggota baru dengan gangguan minimal pada alur kerja Anda. Anda dapat membuat stub untuk jenis, metode, properti, bidang, atau konstruktor tanpa meninggalkan lokasi Anda saat ini dalam kode. Saat Anda membuka kotak dialog untuk menentukan opsi untuk pembuatan jenis, fokus akan segera kembali ke file yang terbuka saat ini saat kotak dialog ditutup.
Fitur Generate From Usage dapat digunakan dengan kerangka kerja pengujian yang terintegrasi dengan Visual Studio. Dalam topik ini, Microsoft Unit Testing Framework ditunjukkan.
Nota
Instruksi dalam artikel ini menggambarkan versi terbaru dari pengalaman pengembangan interaktif (IDE) yang tersedia di Visual Studio. Komputer Anda mungkin menampilkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna. Anda mungkin menggunakan versi Visual Studio yang berbeda atau pengaturan lingkungan yang berbeda. Untuk informasi selengkapnya, lihat Mempersonalisasi ide.
Membuat proyek Pustaka Kelas Windows dan proyek Pengujian
Di C# atau Visual Basic, buat proyek Pustaka Kelas Windows baru. Beri nama
GFUDemo_VBatauGFUDemo_CS, tergantung pada bahasa mana yang Anda gunakan.Di Penjelajah Solusi, klik kanan ikon solusi di bagian atas, pilih Tambahkan>Proyek Baru.
Buat proyek Unit Test Project (.NET Framework) baru.
Menambahkan referensi ke proyek Pustaka Kelas
Di Penjelajah Solusi, di bawah proyek pengujian unit Anda, klik kanan entri Referensi dan pilih Tambahkan Referensi.
Dalam kotak dialog Manajer Referensi , pilih Proyek lalu pilih proyek pustaka kelas.
Pilih OK untuk menutup kotak dialog Manajer Referensi .
Simpan solusi Anda. Anda sekarang siap untuk mulai menulis tes.
Hasilkan kelas baru dari pengujian unit
Proyek pengujian berisi file yang bernama UnitTest1. Klik dua kali file ini di Penjelajah Solusi untuk membukanya di editor kode. Kelas pengujian dan metode pengujian telah dihasilkan.
Temukan deklarasi untuk kelas
UnitTest1dan ganti namanya menjadiAutomobileTest.Nota
IntelliSense sekarang menyediakan dua alternatif untuk penyelesaian pernyataan IntelliSense: mode penyelesaian dan mode saran. Gunakan mode saran untuk situasi di mana kelas dan anggota digunakan sebelum ditentukan. Saat jendela IntelliSense terbuka, Anda dapat menekan Ctrl+Alt+Space untuk beralih antara mode penyelesaian dan mode saran. Lihat Menggunakan IntelliSense untuk informasi selengkapnya. Mode saran akan membantu saat Anda mengetik
Automobiledi langkah berikutnya.TestMethod1()Temukan metode dan ganti namanya menjadiDefaultAutomobileIsInitializedCorrectly(). Di dalam metode ini, buat instans baru kelas bernamaAutomobile, seperti yang ditunjukkan pada cuplikan layar berikut. Garis bawah bergelombang muncul, yang menunjukkan kesalahan waktu kompilasi, dan ikon bola lampu kesalahan Tindakan Cepat muncul di margin kiri, atau tepat di bawah garis bergelombang jika Anda mengarahkannya.
Pilih atau klik bola lampu Tindakan Cepat . Anda akan melihat pesan kesalahan yang menyatakan bahwa jenis
Automobiletidak ditentukan. Anda juga disajikan dengan beberapa solusi.Klik Buat jenis baru untuk membuka kotak dialog Buat Tipe . Kotak dialog ini menyediakan opsi yang mencakup pembuatan jenis dalam proyek yang berbeda.
Di daftar Proyek , klik GFUDemo_VB atau GFUDemo_CS untuk menginstruksikan Visual Studio untuk menambahkan file ke proyek pustaka kelas, bukan proyek pengujian. Jika belum dipilih, pilih Buat file baru dan beri nama Automobile.cs atau Automobile.vb.
Klik OK untuk menutup kotak dialog dan membuat file baru.
Di Penjelajah Solusi, lihat di bawah simpul proyek GFUDemo_VB atau GFUDemo_CS untuk memverifikasi bahwa file Automobile.vb atau Automobile.cs baru ada di sana. Di editor kode, fokus masih ada di
AutomobileTest.DefaultAutomobileIsInitializedCorrectly, yang memungkinkan Anda untuk terus menulis pengujian Anda dengan minimal gangguan.
Membuat stub properti
Asumsikan bahwa spesifikasi produk menyatakan bahwa Automobile kelas memiliki dua properti publik bernama Model dan TopSpeed. Properti ini harus diinisialisasi dengan nilai default "Not specified" dan -1 oleh konstruktor default. Pengujian unit berikut akan memverifikasi bahwa konstruktor default mengatur properti ke nilai default yang benar.
Tambahkan baris kode berikut ke
DefaultAutomobileIsInitializedCorrectlymetode pengujian.Karena kode mereferensikan dua properti yang tidak ditentukan pada
Automobile, garis bawah bergelombang muncul di bawahModeldanTopSpeed. Arahkan mouse ke atasModeldan pilih lampu kesalahan Tindakan Cepat, lalu pilih Hasilkan properti 'Automobile.Model'.Hasilkan stub untuk properti
TopSpeeddengan cara yang sama.Di kelas
Automobile, jenis-jenis properti baru disimpulkan dengan benar dari konteks.
Membuat stub untuk konstruktor baru
Sekarang kita akan membuat metode pengujian yang akan menghasilkan stub konstruktor untuk menginisialisasi properti Model dan TopSpeed. Nantinya, Anda akan menambahkan lebih banyak kode untuk menyelesaikan pengujian.
Tambahkan metode pengujian tambahan berikut ke kelas Anda
AutomobileTest.Klik lampu peringatan kesalahan Tindakan Cepat di bawah garis bergelombang merah, lalu klik Hasilkan konstruktor dalam 'Automobile'.
AutomobileDalam file kelas, perhatikan bahwa konstruktor baru telah memeriksa nama variabel lokal yang digunakan dalam panggilan konstruktor, menemukan properti yang memiliki nama yang sama di kelasAutomobile, dan telah menyediakan kode dalam isi konstruktor untuk menyimpan nilai argumen di propertiModeldanTopSpeed.Setelah Anda membuat konstruktor baru, garis bawah bergelombang akan muncul di bawah pemanggilan konstruktor default di
DefaultAutomobileIsInitializedCorrectly. Pesan kesalahan menyatakan bahwaAutomobilekelas tidak memiliki konstruktor yang tidak mengambil argumen nol. Untuk menghasilkan konstruktor default eksplisit yang tidak memiliki parameter, klik bola lampu kesalahan Tindakan Cepat, lalu klik Buat konstruktor di 'Automobile'.
Membuat stub untuk metode
Asumsikan bahwa spesifikasi menyatakan bahwa suatu Automobile baru dapat dimasukkan ke dalam status IsRunning jika propertinya Model dan TopSpeed diatur ke sesuatu selain nilai default.
Tambahkan baris berikut ke
AutomobileWithModelNameCanStartmetode .Klik ikon kesalahan Tindakan Cepat pada panggilan metode dan kemudian klik Hasilkan metode 'Automobile.Start'.
Klik bola lampu Tindakan Cepat pada properti
IsRunningdan kemudian klik Buat properti 'Automobile.IsRunning'.Kelas
Automobilesekarang berisi metode bernamaStart()dan properti bernamaIsRunning.
Jalankan pengujian
Pada menu Uji , pilih Jalankan>Semua Pengujian.
Perintah Jalankan>Semua Pengujian menjalankan semua pengujian dalam kerangka kerja pengujian apa pun yang ditulis untuk solusi saat ini. Dalam hal ini, ada dua tes, dan keduanya gagal, seperti yang diharapkan. Pengujian
DefaultAutomobileIsInitializedCorrectlygagal karenaAssert.IsTruekondisi mengembalikanFalse. PengujianAutomobileWithModelNameCanStartgagal karenaStartmetode diAutomobilekelas melemparkan pengecualian.Jendela Hasil Pengujian ditampilkan dalam ilustrasi berikut.
Di jendela Hasil Pengujian , klik dua kali pada setiap baris hasil pengujian untuk masuk ke lokasi setiap pengujian.
Menerapkan kode sumber
Tambahkan kode berikut ke konstruktor default sehingga properti
Model,TopSpeed, danIsRunningsemuanya diinisialisasi ke nilai default yang benar dari"Not specified",-1, danFalse(ataufalseuntuk C#).Ketika metode
Startdipanggil, harus mengatur flagIsRunningke true hanya jika propertiModelatauTopSpeeddiatur ke sesuatu selain nilai defaultnya.NotImplementedExceptionHapus dari isi metode dan tambahkan kode berikut.
Jalankan pengujian lagi
Pada menu Uji , arahkan ke Jalankan, lalu klik Semua Pengujian.
Kali ini tes lulus. Jendela Hasil Pengujian ditampilkan dalam ilustrasi berikut.
Konten terkait
- Hasilkan dari penggunaan
- Fitur editor kode
- Menggunakan fitur IntelliSense
- unit menguji kode Anda
- Tindakan Cepat