简介
单元测试是用来进行测试我们业务代码是否有问题,而不用在业务代码中到处System.out.println()
,在基于maven的项目中,默认就给我们生成了test目录专门用来写单元测试。在spring 项目中主要使用Junit框架来实现单元测试,而单元测试中最多用到的就是断言,通过断言来判断程序是否符合预期。
JUnit 中的断言
Junit所有的断言都包含在 Assert 类中。
这个类提供了很多有用的断言方法来编写测试用例。只有失败的断言才会被记录。Assert 类中的一些有用的方法列式如下:
-
void assertEquals(boolean expected, boolean actual)
:检查两个变量或者等式是否平衡 -
void assertTrue(boolean expected, boolean actual)
:检查条件为真 -
void assertFalse(boolean condition)
:检查条件为假 -
void assertNotNull(Object object)
:检查对象不为空 -
void assertNull(Object object)
:检查对象为空 -
void assertSame(boolean condition)
:assertSame() 方法检查两个相关对象是否指向同一个对象 -
void assertNotSame(boolean condition)
:assertNotSame() 方法检查两个相关对象是否不指向同一个对象 -
void assertArrayEquals(expectedArray, resultArray)
:assertArrayEquals() 方法检查两个数组是否相等
方法名 | 方法的解释 |
---|---|
void assertEquals(boolean expected, boolean actual) |
检查两个变量或者等式是否平衡 |
void assertTrue(boolean expected, boolean actual) |
检查条件为真 |
void assertFalse(boolean condition) |
检查条件为假 |
void assertNotNull(Object object) |
检查对象不为空 |
void assertNull(Object object) |
检查对象为空 |
void assertArrayEquals(expectedArray, resultArray) |
检查两个数组是否相等 |
void assertSame(expected, actual) |
查看两个对象的引用是否相等。类似于使用“==”比较两个对象 |
assertNotSame(unexpected, actual) |
查看两个对象的引用是否不相等。类似于使用“!=”比较两个对象 |
fail() |
让测试失败 |
JUnit 中的注解
主要注解
@Test
:这个注释说明依附在 JUnit 的 public void 方法可以作为一个测试案例。
@Before
:有些测试在运行前需要创造几个相似的对象。在 public void 方法加该注释是因为该方法需要在 test 方法前运行。
@After
:如果你将外部资源在 Before 方法中分配,那么你需要在测试运行后释放他们。在 public void 方法加该注释是因为该方法需要在 test 方法后运行。
@BeforeClass
:在 public void 方法加该注释是因为该方法需要在类中所有方法前运行。
@AfterClass
:它将会使方法在所有测试结束后执行。这个可以用来进行清理活动。
@Ignore
:这个注释是用来忽略有关不需要执行的测试的。
注解的加载过程
beforeClass()
: 方法首先执行,并且只执行一次。
afterClass()
:方法最后执行,并且只执行一次。
before()
:方法针对每一个测试用例执行,但是是在执行测试用例之前。
after()
:方法针对每一个测试用例执行,但是是在执行测试用例之后。
在 before() 方法和 after() 方法之间,执行每一个测试用例。