1. Pengenalan
Buku masakan ini menggambarkan cara memanfaatkan pemadan Hamcrest untuk bekerjasama dan menguji koleksi .
The format buku masakan adalah contoh tertumpu dan praktikal - tiada maklumat luaran dan penjelasan yang diperlukan.
Pertama, mari buat import statik cepat untuk merangkumi sebahagian besar API utiliti yang akan kita gunakan seterusnya:
import static org.hamcrest.Matchers.*;
2. Buku Masakan
periksa sama ada elemen tunggal ada dalam koleksi
List collection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, hasItem("cd")); assertThat(collection, not(hasItem("zz")));
periksa sama ada terdapat banyak elemen dalam koleksi
List collection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, hasItems("cd", "ef"));
periksa semua elemen dalam koleksi
- dengan perintah yang ketat
List collection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, contains("ab", "cd", "ef"));
- dengan sebarang pesanan
List collection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, containsInAnyOrder("cd", "ab", "ef"));
periksa sama ada koleksi kosong
List collection = Lists.newArrayList(); assertThat(collection, empty());
periksa sama ada array kosong
String[] array = new String[] { "ab" }; assertThat(array, not(emptyArray()));
periksa sama ada Peta kosong
Map collection = Maps.newHashMap(); assertThat(collection, equalTo(Collections.EMPTY_MAP));
periksa sama ada Iterable kosong
Iterable collection = Lists.newArrayList(); assertThat(collection, emptyIterable());
periksa saiz koleksi
List collection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, hasSize(3));
memeriksa ukuran berulang
Iterable collection = Lists.newArrayList("ab", "cd", "ef"); assertThat(collection, Matchers. iterableWithSize(3));
periksa keadaan pada setiap barang
List collection = Lists.newArrayList(15, 20, 25, 30); assertThat(collection, everyItem(greaterThan(10)));
3. Kesimpulannya
Format ini adalah percubaan - Saya menerbitkan beberapa buku masakan pembangunan dalaman saya pada topik tertentu - Jambu Google dan sekarang Hamcrest. Tujuannya adalah agar maklumat ini tersedia dalam talian - dan menambahkannya setiap kali saya menemui contoh berguna baru.
Pelaksanaan semua contoh dan coretan kod ini dapat dilihat di GitHub - ini adalah projek berasaskan Maven, jadi mudah untuk diimport dan dijalankan sebagaimana adanya.