Buku Masakan Hamcrest Collections

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.