Bagaimana NUnit untuk C # dibandingkan dengan fasilitas Unit Test terintegrasi dengan Visual Studio

12

Saya perlu bekerja dalam tim untuk mengembangkan aplikasi Desktop skala menengah yang dikembangkan menggunakan C # .NET. Sebelum ini, saya belum menerapkan Unit Testing dan Test Driven Development. Saya menyadari bahwa ada banyak alat dan kerangka kerja untuk aplikasi Unit Testing C #. Sampai sekarang, saya mengetahui Nunit dan fasilitas Unit Testing terintegrasi dengan Visual Studio.

Saya ingin tahu, bagaimana keduanya membandingkan?

Shamim Hafiz
sumber

Jawaban:

14

Ada beberapa tumpang tindih antara keduanya. NUnit adalah pendahulunya, dan sebagai hasilnya lebih matang. Kerangka kerja Uji Unit C # lebih muda, tetapi terintegrasi dengan Visual Studio.

Saya datang dari dunia Jawa di mana JUnit adalah raja (ada yang lain, tetapi tidak ada yang sepopuler), dan NUnit 2.5.x sangat cocok dengan cara kerja JUnit 4. Bahkan, ini bekerja jauh lebih baik daripada Java.

Sejauh definisi tes yang bersangkutan, saya mendukung NUnit. Tentu MS Test memiliki atribut yang mirip (tetapi berbeda) yang Anda terapkan ke kelas Anda, tetapi saya percaya ini tidak memiliki beberapa fitur yang dapat menghemat beberapa pekerjaan pada beberapa jenis pengujian. Anda mungkin ingin melihat diskusi serupa tentang StackOverflow .

Saya suka model pernyataan baru yang dibangun di NUnit (menggunakan gaya Hamcrest menegaskan) karena keduanya mudah dibaca dan mudah diperluas.

  • NUnit akan memiliki dukungan pihak ke-3 yang lebih baik, Tes MS akan memiliki integrasi yang lebih baik (di luar kotak).
  • NUnit akan memiliki fleksibilitas dan ekstensibilitas yang lebih baik, Tes MS akan menderita di daerah ini.
  • Keduanya menjalankan tes unit dan memeriksa hasil Anda, keduanya akan bekerja untuk TDD.
Berin Loritsch
sumber
3

Satu-satunya perbedaan nyata yang saya perhatikan ketika saya harus membuat skrip build untuk dijalankan pada bentuk server MSBUILD khusus TFS, pengaturan nUnit dan mendapatkan hasil tes nUnit adalah hal yang sangat menyebalkan, membuat dan mendapatkan hasil untuk MSTest sangat mudah.

Juga ada masalah dengan Resharper di mana tes MSTest tidak dapat dijalankan dari test runner. Dalam versi yang lebih baru, ini sudah diperbaiki, jadi jika Anda memiliki versi Resharper yang lama, itu mungkin masih menjadi masalah.

Posting dari Roy Oshereve ini masih merupakan ikhtisar yang bagus.

ps: Menghapus jawaban saya yang lain, sama sekali tidak membantu, permintaan maaf saya untuk yang itu.

KeesDijk
sumber