import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.hamcrest.StringDescription;
import org.junit.Test;
// 静态引用
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.assertThat;
public class TestHamcrest {
@SuppressWarnings("unchecked")
@Test
public void test(){
// is
assertThat("Hello", is(is(is(is(notNullValue())))));
assertThat(2 + 2, is(4));
// equalTo
assertThat(2 + 2, is(equalTo(4)));
assertThat(2 + 2, is(is(4)));
// instanceOf
assertThat("Hello", is(instanceOf(String.class)));
assertThat("Hello", instanceOf(String.class));
// not
assertThat("Hello", is(not(instanceOf(Integer.class))));
// notNullValue
assertThat("Hello", is(notNullValue()));
// nullValue
assertThat("Hello", is(not(nullValue())));
// any 用于验证class或superClass
assertThat("Hello", is(any(String.class)));
// allOf 满足所有条件
assertThat("Hello", is(allOf(notNullValue(), instanceOf(String.class), equalTo("Hello"))));
// anyOf 满足条件之一
assertThat("Hello", is(anyOf(notNullValue(), instanceOf(String.class), equalTo("GoodBye"))));
// not(allOf) 不满足条件之一
assertThat("Hello", is(not(allOf(notNullValue(), instanceOf(Integer.class)))));
// not(anyOf) 所有条件都不满足
assertThat("Hello", is(not(anyOf(nullValue(), instanceOf(Integer.class), equalTo("GoodBye")))));
// anything 永远为真
assertThat(null, is(anything()));
// sameInstance
Integer i = 1;
assertThat(i, is(sameInstance(1)));
// describedAs 重写某个Matcher的描述
Matcher<?> matcher = describedAs("My description", anything());
Description desc = new StringDescription().appendDescriptionOf(matcher);
assertThat("My description", is(desc.toString()));
}
}