Kami memiliki rangkaian pengujian yang utamanya menggunakan pernyataan JUnit dengan pencocok Hamcrest. Salah satu tim kami mulai bereksperimen dengan AssertJ dan membuat orang terkesan dengan sintaks, fleksibilitas, dan deklaratifnya. Ada satu fitur yang disediakan JUnit yang tidak dapat saya temukan padanannya di AssertJ: menambahkan pesan kegagalan pernyataan kustom.
Kami sering membandingkan objek yang tidak dibuat untuk dibaca manusia dan akan memiliki ID atau UUID yang tampak acak dan tidak mungkin untuk membedakan objek tersebut dengan data yang dikandungnya. Ini adalah situasi yang tidak dapat dihindari untuk basis kode kami, sayangnya, karena bagian dari tujuan yang dipenuhi adalah memetakan data antara layanan lain tanpa harus memahami apa itu.
Di JUnit, assertThat
metode ini menyediakan versi dengan String reason
parameter sebelum Matcher<T>
param. Ini membuatnya mudah untuk menambahkan string debug pendek yang menjelaskan masalah, seperti apa arti perbandingan itu bagi manusia.
AssertJ, di sisi lain, menyediakan jillion berbeda genericizedstatic assertThat
metode yang mengembalikan beberapa bentuk antarmuka Tegaskan atau salah satu dari banyak kelas pelaksanaannya. Antarmuka ini tidak menyediakan cara standar untuk menyetel pesan khusus untuk disertakan dengan kegagalan.
Apakah ada cara untuk mendapatkan fungsionalitas ini dari AssertJ API atau salah satu ekstensinya tanpa harus membuat kelas assert kustom untuk setiap jenis assert yang ingin kita tambahkan pesan?
sumber
withFailMessage
materi; Saya suka AssertJ, tapi ini menyebalkan.FYI ini didokumentasikan di situs web AssertJ baru, lihat https://assertj.github.io/doc/#assertj-core-assertion-description .
sumber
Gunakan
as()
metode inbuilt di AssertJ. Sebagai contoh:assertThat(myTest).as("The test microservice is not active").isEqualTo("active");
sumber