package study.junit.test;
//静态引入一个类,可以直接使用此类中的方法。
import static org.junit.Assert.*;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import study.JunitStudy;
//引入 hamcrest 写规则匹配器
import static org.hamcrest.Matchers.*;
public class JunitStudyTest {
@Test
public void testAdd() {
/*假数据*/
int z = new JunitStudy().add(5, 9);
String str="test";
String str2="test2";
Map<String,String> map=null;
List<String> list=null;
double d=2.5;
/* assertEquals(14, z);
actual 实际值 matcher 规则匹配器 注意 使用此功能 不能使用eclipse自带的junitlibarary
需要自己手动导入 外部junit.jar*/
assertThat(z, is(14));
/*assertThat 匹配器*/
/*z 是否满足比1大 并且比20小*/
assertThat(z, allOf(greaterThan(1),lessThan(20)));
/*z 是否满足比80大 或者比20小*/
assertThat(z,anyOf(greaterThan(80),lessThan(20)));
/*z 可以是任何值*/
assertThat(z,anything());
/*str是否 是。。。。。*/
assertThat(str, is("abcd"));
/*str是否 不是。。。。。*/
assertThat(str, not("abcd"));
/*str 是否包含"abcd"*/
assertThat(str,containsString("abcd"));
/*str 是否以"abcd"结尾*/
assertThat(str,endsWith("abcd"));
/*str 是否以"abcd"开始*/
assertThat(str,startsWith("abcd"));
/*str 是否等于和str2这个对象相同*/
assertThat(str,equalTo(str2));
/*str 忽略大小写 是否相等*/
assertThat(str, equalToIgnoringCase("abcd"));
/*str 忽略空格字符 是否相等*/
assertThat(str, equalToIgnoringWhiteSpace("abcd"));
/*d 这个数 是不是接近4.5,误差在0.5 正负0.5*/
assertThat(d,closeTo(4.5, 0.5));
/*d 是否大于*/
assertThat(d,greaterThan(5.0));
/*d 是否小于*/
assertThat(d,lessThan(5.0));
/*d 是否大于等于*/
assertThat(d,greaterThanOrEqualTo(6.2));
/*d 是否小于等于*/
assertThat(d,lessThanOrEqualTo(6.2));
/*map 是否包含 键为key 值为value的元素*/
assertThat(map,hasEntry("key", "value"));
/*List 是否包含某一对象*/
assertThat(list,hasItem("test"));
/*map 是否包含 键为key 的元素*/
assertThat(map,hasKey("key"));
/*map 是否包含 值为value 的元素*/
assertThat(map,hasValue("value"));
}
/*期望报异常,期望此方法执行时间在100毫秒之中*/
@Test(expected = java.lang.ArithmeticException.class,timeout = 100)
public void testDivide() {
//divide除法
int z =new JunitStudy().divide(8, 0);
assertThat(z, is(2));
}
}