好好生活
  平平淡淡每一天

编辑

单元测试

JUnit 简介

JUnit 官网:https://junit.org/。JUnit 是一个用于编写可重复测试的简单框架。它是用于单元测试框架的 xUnit 体系结构的一个实例。

JUnit 的特点:
(1) 针对于 Java 语言特定设计的单元测试框架,使用非常广泛。
(2) 特定领域的标准测试框架。
(3) 能够在多种 IDE 开发平台使用,包含 Idea、Eclipse 中进行集成。
(4) 能够方便由 Maven 引入使用。
(5) 可以方便的编写单元测试代码,查看测试结果等。

JUnit 的重要概念

名称 功能作用
Assert 断言方法集合
TestCase 表示一个测试案例
TestSuite 包含一组 TestCase,构成一组测试
TestResult 收集测试结果

JUnit 的一些注意事项及规范:

(1) 测试方法必须使用 @Test 修饰

(2) 测试方法必须使用 public void 进行修饰,不能带参数

(3) 测试代码的包应该和被测试代码包结构保持一致

(4) 测试单元中的每个方法必须可以独立测试,方法间不能有任何依赖

(5) 测试类一般使用 Test 作为类名的后缀

(6) 测试方法使一般用 test 作为方法名的前缀

JUnit 失败结果说明:

(1) Failure:测试结果和预期结果不一致导致,表示测试不通过

(2) error:由异常代码引起,它可以产生于测试代码本身的错误,也可以是被测代码的 Bug

JUnit 断言的 API

断言方法 断言描述
assertNull(String message, Object object) 检查对象是否为空,不为空报错
assertNotNull(String message, Object object) 检查对象是否不为空,为空报错
assertEquals(String message, Object expected, Object actual) 检查对象值是否相等,不相等报错
assertTrue(String message, boolean condition) 检查条件是否为真,不为真报错
assertFalse(String message, boolean condition) 检查条件是否为假,为真报错
assertSame(String message, Object expected, Object actual) 检查对象引用是否相等,不相等报错
assertNotSame(String message, Object unexpected, Object actual) 检查对象引用是否不等,相等报错
assertArrayEquals(String message, Object[] expecteds, Object[] actuals) 检查数组值是否相等,遍历比较,不相等报错
assertArrayEquals(String message, Object[] expecteds, Object[] actuals) 检查数组值是否相等,遍历比较,不相等报错
assertThat(String reason, T actual, Matcher<? super T> matcher) 检查对象是否满足给定规则,不满足报错

JUnit 常用注解

注解 说明
@Test 定义一个测试方法 @Test (excepted=xx.class): xx.class 表示异常类,表示测试的方法抛出此异常时,认为是正常的测试通过的 @Test (timeout = 毫秒数) : 测试方法执行时间是否符合预期。
@BeforeClass 在所有的方法执行前被执行,static 方法全局只会执行一次,而且第一个运行。
@AfterClass 在所有的方法执行之后进行执行,static 方法全局只会执行一次,最后一个运行。
@Before 在每一个测试方法被运行前执行一次。
@After 在每一个测试方法运行后被执行一次。
@Ignore 所修饰的测试方法会被测试运行器忽略。
@RunWith 可以更改测试执行器使用 junit 测试执行器。

Mockito API

语法 说明
mock 模拟一个需要的对象。
when 一般配合 thenXXX 一起使用,表示当执行什么操作之后怎样。
any 返回一个特定对象的缺省值,上例中标识可以填写任何 String 类型的数据。
theReturn 在执行特定操作后返回指定结果。
spy 创造一个监控对象。
verify 验证特定的行为。
doReturn 返回结果。
doThrow 抛出特定异常。
doAnswer 做一个自定义响应。
times 操作执行次数。
atLeastOnce 操作至少要执行一次。
atLeast 操作至少执行指定的次数。
atMost 操作至多执行指定的次数。
atMostOnce 操作至多执行一次。
doNothing 不做任何的处理。
doReturn 返回一个结果。
doThrow 抛出一个指定异常。
doAnswer 指定一个特定操作。
doCallRealMethod 用于监控对象返回一个真实结果。
posted @ 2025-09-25 10:14  踏步  阅读(8)  评论(0)    收藏  举报