Junit Assert 和 AssertEquals 示例
⚡ 智能摘要
JUnit Assert 和 AssertEquals 通过比较预期值和实际值来确定测试用例的通过或失败状态。本资源解释了 org.junit.Assert 提供的 assert 方法,包括布尔值断言、空值断言、恒等断言、相等断言和数组断言,并提供了一个完整的示例。

什么是 Junit Assert?
断言(Assert)是一种用于确定测试用例通过或失败状态的方法。断言方法由 org.junit.Assert 类提供,该类继承自 java.lang.Object 类。
断言有多种类型,例如布尔断言、空值断言、相同断言等。
JUnit 提供了一个名为 Assert 的类,该类提供了一系列断言方法,这些方法在编写测试用例和检测测试失败时非常有用。
断言方法由类提供 断言这扩展了 对象 类。
JUnit 断言方法
布尔
如果要测试布尔条件(真或假),可以使用以下断言方法:
- assertTrue(条件)
- assertFalse(条件)
这里的条件是一个布尔值。
空对象
如果要检查对象/变量的初始值,可以使用以下方法:
- assertNull(对象)
- 断言NotNull(对象)
这里的对象是一个 Java 宾语, 例如 断言Null(实际);
相同
如果您想检查对象是否相同(即,比较对同一个对象的两个引用), Java 对象)或不同:
- assertSame(expected, actual) — 如果 预期 == 实际.
- assertNotSame(预期,实际)
断言相等
如果要测试两个对象是否相等,可以使用以下方法:
- assertEquals(预期,实际)
如果发生以下情况则返回 true 预期值等于实际值 返回true。
断言数组相等
如果要测试数组是否相等,可以使用以下方法:
- assertArrayEquals(预期,实际)
如果数组长度相同,则必须使用上述方法。对于每个有效值 i,您可以按如下所示进行检查:
- assertEquals(expected[i], actual[i])
- assertArrayEquals(expected[i], actual[i])
失败信息
如果你想抛出任何断言错误,你可以 失败()这总是导致失败的判决。
- 失败(消息);
你可以有一个带有附加信息的断言方法。 串 将参数作为第一个参数。如果断言失败,此字符串将附加到失败消息中。例如: 失败(消息) 可以写成:
- assertEquals(message, expected, actual)
JUnit 断言等于
你有 assertEquals(a, b),它依赖于 等于 () Object 类的方法。
- 这里将其评估为 a.等于(b).
- 这里使用被测试的类来确定合适的相等关系。
- 如果一个类没有覆盖 等于 () 的方法 摆件 类,它将获得该类的默认行为。 等于 () 方法,即对象标识。
If a 和 b 是诸如 字节, INT, 布尔等等,然后对于 assertEquals(a, b) 将执行以下操作:
a 和 b 将转换为其等效的包装器对象类型(字节、整数、布尔值等),然后 a.等于(b) 将被评估。
例如,考虑下面提到的两个具有相同值的字符串;让我们使用 assertEquals 来测试它们:
String obj1 = "Junit"; String obj2 = "Junit"; assertEquals(obj1, obj2);
上述断言语句将返回 true,因为 obj1.equals(obj2) 返回 true。
浮点断言
当您想要比较浮点类型时(例如, 翻番 or 浮动),您还需要一个额外的必填参数, 三角洲为了避免在进行浮点数比较时出现舍入误差问题。
该断言的评估结果如下:
- Math.abs(预期值 – 实际值) <= delta
例如:
assertEquals(aDouble价值,另一个Double值,0.001)
JUnit 断言示例
以下示例演示了如何使用断言来判断条件。 JUnit 断言方法。
让我们创建一个名为“简单测试类”的类 Junit4AssertionTest.java 以及一个测试运行器类 测试运行器.java.
您将创建一些变量和重要的断言语句。 JUnit.
在这个例子中,你将使用 TestRunner.java 来执行我们的测试类。
步骤1) 让我们创建一个类,涵盖所有重要的 assert 语句方法。 JUnit:
Junit4AssertionTest.java
package guru99.junit; import static org.junit.Assert.*; import org.junit.Test; public class Junit4AssertionTest { @Test public void testAssert() { // Variable declaration String string1 = "Junit"; String string2 = "Junit"; String string3 = "test"; String string4 = "test"; String string5 = null; int variable1 = 1; int variable2 = 2; int[] airethematicArrary1 = { 1, 2, 3 }; int[] airethematicArrary2 = { 1, 2, 3 }; // Assert statements assertEquals(string1, string2); assertSame(string3, string4); assertNotSame(string1, string3); assertNotNull(string1); assertNull(string5); assertTrue(variable1 < variable2); assertArrayEquals(airethematicArrary1, airethematicArrary2); } }
步骤2) 您需要创建一个测试运行器类来执行上述类:
测试运行器.java
package guru99.junit; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(Junit4AssertionTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result==" + result.wasSuccessful()); } }
步骤3) 让我们逐步分析预期输出。逐一考虑所有断言语句:
- assertEquals(string1, string2);
现在使用 Object 类的 equals 方法比较 string1=”Junit” 和 string2=”Junit”。将 assertEquals 方法替换为 java.lang.Object.equals() 方法:
string1.equals(string2) => 返回 true
因此 assertEquals(string1, string2) 将返回 true.
- 断言相同(字符串3,字符串4);
`assertSame()` 函数用于检查两个对象是否指向同一个对象。由于 string3=”test” 和 string4=”test”,它们属于同一类型,因此 `assertSame(string3, string4)` 将返回 true。 true.
- 断言不相同(字符串1,字符串3);
`assertNotSame()` 函数用于检查两个对象是否指向同一个对象。由于 string1=”Junit” 和 string3=”test”,两者类型不同,因此 `assertNotSame(string1, string3)` 将返回 false。 true.
- 断言NotNull(string1);
“assertNotNull()”函数用于检查对象是否为空。由于string1=”Junit”是一个非空值,因此assertNotNull(string1)将返回true。 true.
- 断言Null(string5);
“assertNull()”函数用于检查对象是否为空。由于string5=null,即值为null,因此assertNull(string5)将返回null。 true.
- assertTrue(variable1 < variable2);
“assertTrue()”函数用于检查某个条件是否为真。由于 variable1=1 且 variable2=2,表明 variable1 < variable2 的条件为真,因此 assertTrue(variable1 < variable2) 将返回真。 true.
- 声明ArrayEquals(airethematicArrary1,airethematicArrary2);
`assertArrayEquals()` 函数用于检查预期数组和结果数组是否相等。数组类型可以是 int、long、short、char、byte 或 java.lang.Object。由于 `airethematicArrary1 = { 1, 2, 3 }` 和 `airethematicArrary2 = { 1, 2, 3 }`,表明两个数组相等,因此 `assertArrayEquals(airethematicArrary1, airethematicArrary2)` 将返回 `true`。 true.
由于所有七个断言陈述 Junit4AssertionTest.java 当执行测试断言类时,该类将返回 true,并返回测试成功(见下方输出)。
步骤4) 右键单击 Junit4AssertionTest.java,然后单击“运行方式”-> JUnit. 您将看到如下所示的输出:
以上输出结果显示测试成功,符合预期。

