Tại sao điều này không biên dịch, ồ, phải làm gì?Tại sao mã này không cố gắng sử dụng biên dịch hasItems của Hamcrest?
import static org.junit.Assert.assertThat;
import static org.junit.matchers.JUnitMatchers.hasItems;
ArrayList<Integer> actual = new ArrayList<Integer>();
ArrayList<Integer> expected = new ArrayList<Integer>();
actual.add(1);
expected.add(2);
assertThat(actual, hasItems(expected));
lỗi sao chép từ bình luận:
cannot find symbol method assertThat(java.util.ArrayList<java.lang.Integer>, org.hamcreset.Matcher<java.lang.Iterable<java.util.ArrayList<java.lang.Integer>>>)
Tôi so sánh nhiều mặt hàng. (hasItems, not hasItem) – ripper234
Vì vậy, hamcrest chỉ đơn giản là không hỗ trợ so sánh hai bộ sưu tập? (Tôi không có danh sách các mục thực tế, tôi đang tạo danh sách các số từ 0 đến 999 Tôi phải so sánh các bộ sưu tập). – ripper234
Tôi không thể trả lời điều đó cho bạn, tôi đang nói điều này dựa trên tài liệu. Nhưng có một cách đơn giản hơn để làm những gì bạn muốn ... sử dụng assertTrue (actual.containsAll (mong đợi)). – freitass