Saya baru-baru ini mencoba menggunakan metode Assert.Equals () saat menulis tes NUnit baru. Setelah dieksekusi, metode ini AssertionException
menyatakan bahwa
Assert.Equals should not be used for Assertions.
ini sedikit membingungkan pada pandangan pertama. Apa yang terjadi di sini?
132
Jawaban:
Assert
adalah kelas statis yang mewarisi dari System.Object, karena semua kelas dilakukan secara implisit dalam C #. System.Object mengimplementasikan metode berikut:Metode Assert yang dimaksudkan untuk perbandingan kesetaraan adalah
Assert.AreEqual()
metode. Oleh karena itu, memanggilObject.Equals()
metode melalui kelas Assert dalam unit test tentu saja merupakan kesalahan. Untuk mencegah kesalahan ini dan menghindari kebingungan, para pengembang NUnit sengaja menyembunyikanObject.Equals
di kelas Assert dengan implementasi yang melempar pengecualian. Inilah implementasinya:Tentu saja pesan pengecualian itu sendiri membingungkan, tetapi setidaknya itu memberi tahu Anda bahwa Anda telah melakukan sesuatu yang salah.
sumber
tldr;
tidak:
sumber