API简介
- assertTrue/False([String message,]boolean condition);
判断一个条件是true还是false。感觉这个最好用了,不用记下来那么多的方法名。 - assertTrue(boolean condition);
condition:如果condition结果为true,则通过测试. - assertFalse(boolean condition);
condition:如果condition结果为false,则通过测试. - fail([String message,]);
失败,可以有消息,也可以没有消息。 - ssertEquals([String message,]Object expected,Object actual);
判断是否相等,可以指定输出错误信息。
第一个参数是期望值,第二个参数是实际的值。
这个方法对各个变量有多种实现。在JDK1.5中基本一样。
但是需要主意的是float和double最后面多一个delta的值。 - assertNotEquals([String message,]Object expected,Object actual);
判断是否不相等。
第一个参数是期望值,第二个参数是实际的值。 - assertArrayEquals([java.lang.String message,] java.lang.Object[] expecteds, java.lang.Object[] actuals) ;
- assertNotNull/Null([String message,]Object obj);
判读一个对象是否非空(非空)。 - assertSame/NotSame([String message,]Object expected,Object actual);
判断两个对象是否指向同一个对象。看内存地址。 - failNotSame/failNotEquals(String message, Object expected, Object actual)
当不指向同一个内存地址或者不相等的时候,输出错误信息。
注意信息是必须的,而且这个输出是格式化过的。
示例
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertAll;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTimeout;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.verify;
public class Junit5AssertTest {
@Test
void fun1(){
assertEquals(2, 2);
assertEquals(4, 5, "不相等");
}
@Test
void fun2(){
assertTrue('a' < 'b', "错误");
}
private static Dept dept = new Dept("RESEARCH","NewYork");
@Test
void groupedAssertions() {
assertAll("dept",
() -> assertEquals("RESEARCH", dept.getDname()),
() -> assertEquals("NEWYORK", dept.getLoc())
);
}
@Test
void dependentAssertions() {
assertAll("properties",
() -> {
String dname = dept.getDname();
assertNotNull(dname);
assertAll("dname",
() -> assertTrue(dname.startsWith("R")),
() -> assertTrue(dname.endsWith("H"))
);
},
() -> {
String loc = dept.getLoc();
assertNotNull(loc);
assertAll("loc",
() -> assertTrue(loc.startsWith("N")),
() -> assertTrue(loc.endsWith("k"))
);
}
);
}
@Test
void exceptionTesting() {
Throwable exception = assertThrows(IllegalArgumentException.class, () -> {
try {
System.out.println(1 / 0);
}catch (Exception e){
throw new IllegalArgumentException("非法的参数异常");
}
});
assertEquals("非法的参数异常", exception.getMessage());
}
@Test
void timeoutNotExceeded() {
assertTimeout(Duration.ofMinutes(2), () -> {
System.out.println(33+44);
});
}
@Test
void timeoutNotExceededWithResult() {
String actualResult = assertTimeout(Duration.ofMinutes(2), () -> {
return "haha";
});
assertEquals("haha", actualResult);
}
@Test
void timeoutExceeded() {
assertTimeout(Duration.ofMillis(10), () -> {
Thread.sleep(100);
});
}
}