2014-05-15 12 views
5

Tôi đang sử dụng FEST để viết xác nhận trong JUnit.Làm thế nào để khẳng định rằng một danh sách không chứa một cái gì đó, với FEST?

Thật dễ dàng để khẳng định rằng một danh sách là có chứa một số yếu tố:

assertThat(list).contains(2,4); 

Nhưng làm thế nào để khẳng định rằng danh sách này không có chứa một cái gì đó? Giống như:

assertThat(list).doesnotContain(3); // !!! no such method 

Trả lời

8

Tôi vừa mới được có một trình duyệt thông qua các mã nguồn cho các chi nhánh phiên bản 1 và thấy điều này:

/** 
* Verifies that the actual group of objects does not contain the given objects. 
* 
* @param objects the objects that the group of objects should exclude. 
* @return this assertion object. 
* @throws AssertionError  if the actual group of objects is {@code null}. 
* @throws NullPointerException if the given array is {@code null}. 
* @throws AssertionError  if the actual group of objects contains any of the given objects. 
*/ 
public final @Nonnull S excludes(@Nonnull Object... objects) { 
    assertExcludes(objects); 
    return myself(); 
} 

tôi có lẽ không nên giả định hoang dã như thế này, nhưng nó trong cùng một lớp với phương thức contains (ObjectGroupAssert) và Javadoc dường như mô tả chức năng bạn đang tìm kiếm.

Vì vậy, tôi nghĩ, bạn sẽ chỉ cần:

assertThat(list).excludes(5,7); 
+0

Nó hoạt động! Tên phương thức 'loại trừ' là một chút ngạc nhiên đối với tôi – Freewind

+0

Huzzah! :) Yeah, 'excludees' là mới đối với tôi, tôi đã mong đợi một biến thể' doesNotContain'. Nhưng suy nghĩ về nó, tôi thích loại trừ, nhưng nó có thể ngồi tốt hơn với bao gồm như là một phần phản đối hơn là chứa. –

Các vấn đề liên quan