当前位置:   article > 正文

Java单元测试(Mock)_java mock

java mock

概念

单元测试,用于检查和验证程序中的各个单元(通常是函数、方法或类)是否按照预期工作(是否符合预期)。

解释
JUnit单元测试框架,提供了一组注解和断言来编写和运行测试
Spring Test和SpringBootTest提供了一些方便的工具和注解来进行集成测试和组件测试。
AssertJ断言库,提供了丰富的断言来编写清晰、易读的测试代码。
Hamcrest匹配器库,用于编写灵活和可读的断言。
Mockito用于创建和管理模拟对象,帮助模拟外部依赖、行为和状态。

注解

  1. @SpringBootTest:用于加载Spring应用程序上下文。
  2. @AutoConfigureMockMvc:用于自动配置MockMvc实例。
  3. @Transactional:开启事务功能。
  4. @Rollback()事务回滚,默认true。
  5. @ParameterizedTest :用于支持参数化测试@CsvSource@ValueSource@MethodSource
  6. @Mock:创建模拟对象。
  7. @MockBean:创建模拟对象,会注入到 Spring 上下文。
  8. @Spy:创建真实对象,并可以部分模拟该对象的行为。
  9. @InjectMocks标记一个待测对象(被测试类的对象),用于注入被测试类中的依赖(注入模拟对象)

Assertions

JUnit测试中,Assertions类提供了一系列用于验证测试结果的静态方法

  1. assertEquals(expected, actual):验证两个值是否相等。适用于比较基本数据类型、对象或数组等。

    assertEquals(5, result); // 比较整数值
    assertEquals("expected", result); // 比较字符串值
    assertEquals(expectedObject, actualObject); // 比较对象
    assertEquals(expectedArray, actualArray); // 比较数组
    
    • 1
    • 2
    • 3
    • 4
  2. assertTrue(condition):验证给定的条件是否为真。

  3. assertFalse(condition):验证给定的条件是否为假。

  4. assertNull(object):验证给定对象是否为空。

  5. assertNotNull(object):验证给定对象是否不为空。

  6. assertSame(expected, actual):验证两个对象引用是否指向同一个对象。

  7. assertNotSame(unexpected, actual):验证两个对象引用是否指向不同的对象。

  8. assertThrows(expectedType, executable):验证代码块是否抛出了指定类型的异常。

单元测试步骤

推荐阅读
相关标签