Java提供了断言方法,一般断言方法参数顺序为(期望值,实际值);assertThat和其他断言方法参数顺序是相反的,为(实际值,期望值),assertThat可以结合hamcrest 使用。
Junit的org.junit.Assert类提供了各种断言方法来写junit测试。这些方法被用来检查方法的真实结果值和期望值。基本的断言方法列表:
Method | Description |
---|---|
assertNull(java.lang.Object object) | 检查对象是否为空;如果对象为null则通过测试,反之看作失败 |
assertNotNull(java.lang.Object object) | 检查对象是否为空;如果对象不为null则通过测试,反之看作失败 |
assertEquals(long expected, long actual) | 检查long类型的值是否相等;如果expected 和 actual不相等则失败,否则通过测试。 |
assertEquals(Object expected, Object actual) | 根据equals()方法,如果expected 和 actual不相等则失败,否则通过测试。 |
assertEquals(int expected, int actual) | 根据==操作符,如果expected 和 actual不相等则失败,否则通过测试 |
assertEquals(double expected, double actual, double delta) | 检查指定精度的double值是否相等;如果expected 和 actual不相等则失败,否则通过测试。 |
assertFalse(boolean condition) | 检查条件是否为假;如果condition为true则失败;否则通过测试 |
assertTrue(boolean condition) | 检查条件是否为真;如果condition为False则失败;否则通过测试 |
assertSame(java.lang.Object expected, java.lang.Object actual) | 检查两个对象引用是否引用同一对象(即对象是否相等);如果expected 和 actual引用不同的内存对象则失败;如果它们引用相同的内存对象则通过测试。两个对象可能并不是相同的,但是它们可能通过equals()方法仍然可以是相等的。 |
assertNotSame(java.lang.Object unexpected, java.lang.Object actual) |
检查两个对象引用是否不引用统一对象(即对象是否不相等);如果expected 和 actual引用相同的内存对象则失败;如果它们引用不同的内存对象则通过测试。 |
AssertionsTest.Java junit测试用例,显示各种断言方法:
- import static org.junit.Assert.*;
- import java.util.ArrayList;
- import java.util.List;
- import org.junit.Test;
- /**
- * @author javatutorials.co.in
- */
- public class AssertionsTest {
- @Test
- public void testAssertNull() {
- String str = null;
- assertNull(str);
- }
- @Test
- public void testAssertNotNull() {
- String str = "hello Java!!";
- assertNotNull(str);
- }
- @Test
- public void testAssertEqualsLong() {
- long long1 = 2;
- long long2 = 2;
- assertEquals(long1, long2);
- }
- @Test
- public void testAssertEqualsDouble() {
- // test case is successfull as double1 and double 2
- // differ by 0.001 which is less than our specified delta
- double double1 = 1.236;
- double double2 = 1.237;
- double delta = 0.002;
- assertEquals(double1, double2, delta);
- }
- @Test
- public void testAssertTrue() {
- List<String> list = new ArrayList<String>();
- assertTrue(list.isEmpty());
- }
- @Test
- public void testAssertFalse() {
- List<String> list = new ArrayList<String>();
- list.add("hello");
- assertFalse(list.isEmpty());
- }
- @Test
- public void testAssertSame() {
- String str1 = "hello world!!";
- String str2 = "hello world!!";
- assertSame(str2, str1);
- }
- @Test
- public void testAssertNotSame() {
- String str1 = "hello world!!";
- String str3 = "hello Java!!";
- assertNotSame(str1, str3);
- }
- }