📅  最后修改于: 2023-12-03 15:32:26.637000             🧑  作者: Mango
JUnit是Java语言下非常流行的单元测试框架。当我们编写测试用例时,我们需要一些机制来判断测试的结果是否正确。这时候,JUnit就派上用场了。JUnit提供了一系列的断言,方便我们进行测试时的判断。本文将介绍JUnit中常用的断言。
assertEquals方法用于判断实际值和期望值是否相等。例如:
int actual = 1 + 2 + 3;
int expected = 6;
assertEquals(expected, actual);
这个测试用例的实际值为6,期望值也为6,因此测试通过。
assertTrue和assertFalse方法用于判断布尔表达式的值是否为true或false。例如:
boolean result = (3 + 4 == 8);
assertTrue(result);
这个测试用例的布尔表达式为false,因此测试不通过。
assertNull和assertNotNull方法用于判断对象的引用是否为null或非null。例如:
String str = null;
assertNull(str);
Object obj = new Object();
assertNotNull(obj);
这个测试用例测试的是String类型的引用是否为null,以及一个新创建的Object对象是否是null,因此这个测试通过。
assertSame和assertNotSame方法用于判断对象是不是同一个对象。例如:
String s1 = "hello";
String s2 = "hello";
assertSame(s1, s2);
String s3 = "java";
String s4 = new String("java");
assertNotSame(s3, s4);
测试用例中,s1和s2是同一个对象,所以测试通过;s3和s4虽然内容一样,但是不是同一个对象,所以测试不通过。
fail方法是一个失败方法,这表示这个测试用例肯定会失败。例如:
fail("This should fail.");
这个测试用例总是会失败,因为它使用的是fail方法。
JUnit中还有一种特殊的测试叫做异常测试。如果我们期望某段代码会出现异常,我们可以使用@org.junit.Test注解中的expected属性来测试。例如:
@Test(expected = ArithmeticException.class)
public void testDivisionWithException() {
int i = 1 / 0;
}
这个测试用例测试了除以0会出现算术异常这个情况。因此ensureDivisionWithException()应该抛出该异常。 如果没有抛出异常,该测试用例将失败。
JUnit断言有很多种,每种断言都有其适用范围。通过使用断言,我们可以判断代码的行为是否符合我们的预期。这就是JUnit给我们带来的好处,可以让我们更加自信和放心地修改代码。