Junit4 断言常见方法
1 概述
在本文中,我们将学习JUnit 4中所有可用的Assert语句 。这些断言可用于所有 基本类型,对象和数组(基本或对象)。
断言中的参数order是期望值,后跟实际值;可选地,第一个参数可以是代表已评估条件的消息输出的String消息。
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. 第一个参数是一个可选的字符串消息 |
断言一个条件为真 |
|
断言一个条件为假 |
|
断言一个对象为空(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) |
断言,两个对象引用不相同的对象 |
断言一个条件失败 |
JUnit 4中可用的Assert语句列表。
让我们用一个例子讨论每个断言。
让我们从assertEquals一开始。
2.1 assertEquals方法
assertEquals断言验证期望值和实际值是否相等:
/**
* 一点教程网: http://www.yiidian.com
*/
@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方法
如果要断言两个数组相等,则可以使用assertArrayEquals:
/**
* 一点教程网: http://www.yiidian.com
*/
@Test
public void whenAssertingArraysEquality_thenEqual() {
char[] expected = {'J','u','n','i','t'};
char[] actual = "Junit".toCharArray();
assertArrayEquals(expected, actual);
}
如果两个数组都为空,则断言将认为它们相等:
/**
* 一点教程网: http://www.yiidian.com
*/
@Test
public void givenNullArrays_whenAssertingArraysEquality_thenEqual() {
int[] expected = null;
int[] actual = null;
assertArrayEquals(expected, actual);
}
2.3 assertNotNull和assertNull方法
当我们想测试一个对象是否为空时,我们可以使用assertNull断言:
/**
* 一点教程网: http://www.yiidian.com
*/
@Test
public void whenAssertingNull_thenTrue() {
Object car = null;
assertNull("The car should be null", car);
}
相反,如果我们要断言一个对象不应该为null,则可以使用assertNotNull断言。
2.4 assertNotSame和assertSame方法
使用assertNotSame,可以验证两个变量是否未引用同一对象:
@Test
public void whenAssertingNotSameObject_thenDifferent() {
Object cat = new Object();
Object dog = new Object();
assertNotSame(cat, dog);
}
否则,当我们要验证两个变量引用同一对象时,可以使用assertSame断言。
2.5 assertTrue和assertFalse方法
如果我们想验证某个条件是真还是假,我们可以分别使用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
失败声明会导致抛出AssertionFailedError的测试失败。它可以用来验证是否抛出了实际的异常,或者当我们想要使测试在开发过程中失败时。
让我们看看如何在第一种情况下使用它:
@Test
public void whenCheckingExceptionMessage_thenEqual() {
try {
methodThatShouldThrowException();
fail("Exception not thrown");
} catch (UnsupportedOperationException e) {
assertEquals("Operation Not Supported", e.getMessage());
}
}
2.7 assertThat方法
assertThat断言是JUnit 4中唯一与其他断言相比具有相反顺序参数的断言。
在这种情况下,该断言具有可选的失败消息,实际值和Matcher对象。
让我们看看如何使用此断言来检查数组是否包含特定值:
@Test
public void testAssertThatHasItems() {
assertThat(
Arrays.asList("Java", "Kotlin", "Scala"),
hasItems("Java", "Kotlin"));
}
3 结论
在本文中,我们通过示例学习了JUnit 4断言。 这些断言可用于所有基本类型,对象和数组(基本或对象)。
热门文章
优秀文章