Saya memiliki nilai-nilai ini yang berasal dari ujian
previousTokenValues[1] = "1378994409108"
currentTokenValues[1] = "1378994416509"
dan saya mencoba
// current timestamp is greater
assertTrue(Long.parseLong(previousTokenValues[1]) > Long.parseLong(currentTokenValues[1]));
Saya mendapatkan java.lang.AssertionError
dan detailMessage
debugging adalah null
.
Bagaimana saya bisa menegaskan lebih dari kondisi dalam menggunakan JUnit
Jawaban:
Bagaimana Anda melakukannya.
assertTrue(boolean)
juga memiliki kelebihan diassertTrue(String, boolean)
manaString
pesannya jika terjadi kegagalan; Anda dapat menggunakannya jika Anda ingin mencetak bahwa ini-dan-itu tidak lebih besar dari ini-dan-itu.Anda juga bisa menambahkan
hamcrest-all
sebagai dependensi untuk menggunakan matcher. Lihat https://code.google.com/p/hamcrest/wiki/Tutorial :Itu memberikan kesalahan seperti:
sumber
OrderingComparison
yang berisigreaterThan
: hamcrest.org/JavaHamcrest/javadoc/1.3/org/hamcrest/number/…<groupId>org.hamcrest</groupId>
,<artifactId>hamcrest-all</artifactId>
Saat menggunakan JUnit menegaskan, saya selalu membuat pesannya bagus dan jelas. Ini menghemat banyak waktu debugging. Melakukannya dengan cara ini menghindari keharusan menambahkan ketergantungan tambahan pada Pencocok hamcrest.
sumber
Anda juga dapat mencoba soln sederhana di bawah ini:
sumber
Anda harus menambahkan Hamcrest-library ke Build Path Anda. Ini berisi Matchers.class yang dibutuhkan yang memiliki metode lessThan ().
Ketergantungan seperti di bawah ini.
sumber
ini berlaku untuk nilai sebelumnya> saat ini
sumber
Alternatifnya jika menambahkan pustaka tambahan seperti
hamcrest
tidak diinginkan, logika dapat diimplementasikan sebagai metode utilitasjunit
hanya dengan menggunakan ketergantungan:sumber
Seperti yang saya ketahui, saat ini, di JUnit, sintaksnya seperti ini:
Berarti, kondisinya ada di depan pesan.
sumber
Anda bisa meletakkannya seperti ini
sumber