Junit4 断言常见方法
1 概述
在本文中,我们将学习JUnit 4中所有可用的Assert语句 。这些断言可用于所有 基本类型,对象和数组(基本或对象)。
2. JUnit 4断言与示例
方法 | 描述 |
---|---|
void assertArrayEquals([String message], expectedArray, resultArray) |
断言预期数组和结果数组相等。数组的类型可能是 int, long, short, char, byte or java.lang.Object. |
void assertEquals([String message], expected value, actual value) |
断言两个值相等。值可能是类型有 int, short, long, byte, char or java.lang.Object. 第一个参数是一个可选的字符串消息 |
void assertTrue([String message], boolean condition) |
断言一个条件为真 |
void assertFalse([String message],boolean condition) |
断言一个条件为假 |
void assertNull([String message], java.lang.Object object) |
断言一个对象为空(null) |
void assertNotNull([String message], java.lang.Object object) |
断言一个对象不为空(null) |
void assertSame([String message], java.lang.Object expected, java.lang.Object actual) |
断言,两个对象引用相同的对象 |
void assertNotSame([String message], java.lang.Object unexpected, java.lang.Object actual) |
断言,两个对象引用不相同的对象 |
void Assert.fail(String message) |
断言一个条件失败 |
JUnit 4中可用的Assert语句列表。
2.1 assertEquals方法
/**
* 小牛知识库网: https://www.xnip.cn
*/
@Test
public void whenAssertingEquality_thenEqual() {
String expected = "Ramesh";
String actual = "Ramesh";
assertEquals(expected, actual);
}
还可以指定断言失败时显示的消息:
assertEquals("failure - strings are not equal", expected, actual);
2.2 assertArrayEquals方法
/**
* 小牛知识库网: https://www.xnip.cn
*/
@Test
public void whenAssertingArraysEquality_thenEqual() {
char[] expected = {'J','u','n','i','t'};
char[] actual = "Junit".toCharArray();
assertArrayEquals(expected, actual);
}
如果两个数组都为空,则断言将认为它们相等:
/**
* 小牛知识库网: https://www.xnip.cn
*/
@Test
public void givenNullArrays_whenAssertingArraysEquality_thenEqual() {
int[] expected = null;
int[] actual = null;
assertArrayEquals(expected, actual);
}
2.3 assertNotNull和assertNull方法
/**
* 小牛知识库网: https://www.xnip.cn
*/
@Test
public void whenAssertingNull_thenTrue() {
Object car = null;
assertNull("The car should be null", car);
}
相反,如果我们要断言一个对象不应该为null,则可以使用assertNotNull断言。
2.4 assertNotSame和assertSame方法
@Test
public void whenAssertingNotSameObject_thenDifferent() {
Object cat = new Object();
Object dog = new Object();
assertNotSame(cat, dog);
}
否则,当我们要验证两个变量引用同一对象时,可以使用assertSame断言。
2.5 assertTrue和assertFalse方法
@Test
public void whenAssertingConditions_thenVerified() {
assertTrue("5 is greater then 4", 5 > 4);
assertFalse("5 is not greater then 6", 5 > 6);
}
2.6 fail
@Test
public void whenCheckingExceptionMessage_thenEqual() {
try {
methodThatShouldThrowException();
fail("Exception not thrown");
} catch (UnsupportedOperationException e) {
assertEquals("Operation Not Supported", e.getMessage());
}
}
2.7 assertThat方法
@Test
public void testAssertThatHasItems() {
assertThat(
Arrays.asList("Java", "Kotlin", "Scala"),
hasItems("Java", "Kotlin"));
}