Latar Belakang
Saya sedang mengerjakan proyek dengan C # .NET, dan saya baru saja menambahkan proyek unit test baru untuk solusi saya di Visual Studio. Cara saya selalu melakukan ini adalah:
- Buat proyek uji unit baru.
- Mintalah proyek itu memasukkan referensi ke proyek yang sedang diuji .
- Cukup sertakan (
using
) proyek.
Saya kira cara lain yang bisa Anda lakukan adalah ...
- Buat proyek uji unit baru.
- Mintalah proyek itu memasukkan referensi ke proyek yang sedang diuji .
- Buat proyek uji unit berbagi namespace dengan proyek yang sedang diuji .
Pertanyaan
Apakah ada cara yang diterima untuk melakukan ini untuk proyek-proyek di dunia .NET, atau , apakah ini hanya pendapat dan tidak ada yang lebih dari itu?
c#
unit-testing
tdd
visual-studio
project-structure
Mengintip
sumber
sumber
MethodName_StateUnderTest_ExpectedBehavior()
, dan saya yakin Anda bisa menemukan nama yang tidak bertentangan untuk kelas tes. Pertanyaan sebenarnya adalah: apakah Anda benar-benar ingin jenis-jenis itu muncul di intellisense Anda?Jawaban:
Tes unit Anda dalam proyek terpisah dan melayani fungsi terpisah dari kode utama Anda, jadi menempatkan mereka ke ruang nama yang terpisah sangat masuk akal bagi saya.
Jika Anda mempertimbangkan untuk menempatkan mereka di namespace yang sama hanya untuk menyimpan
using
garis, maka jangan. Kode kurang baik, kode lebih jelas lebih baik.sumber
Saya telah menggunakan proyek unit test dengan namespace yang sama dengan proyek sebenarnya (dengan menghapus
Tests
sufiks secara manual pada namespace proyek uji) selama beberapa tahun tanpa masalah.Saya pikir ini mengarah ke kode yang lebih mudah jadi saya biasanya menyarankan pergi pendekatan itu. Beberapa kekurangan, seperti potensi konflik namespace, tidak boleh terjadi ketika berhadapan dengan proyek unit test karena Anda sudah mengikuti beberapa konvensi pengujian untuk itu, seperti mencekik semua kelas uji dengan
Tests
. Selain itu, bagi saya kedengarannya cukup intuitif untuk memiliki kelas dan kelas tes di namespace yang sama.Beberapa orang akan berpikir itu aneh, tetapi ini seharusnya tidak menjadi masalah, karena banyak kerangka kerja majelis juga menggunakan strategi ini memiliki beberapa DLL yang memiliki kelas di ruang nama yang sama: itu tidak seharusnya menjadi hal yang mengejutkan atau buruk berlatih di dalam dan dari dirinya sendiri.
Saya pikir ini lebih pada selera pribadi, jadi itu tidak benar-benar "jawab" per-se. Setelah mengatakan itu, "pilihanku", sesuai alasan di atas, adalah untuk mencobanya sendiri pada awalnya, dan jika Anda suka pendekatannya, lakukanlah.
sumber