【单元测试】jUnit框架

POM配置 

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>

Java Test类结构

Class XXXTest{
@Test
Public void should_预期_when_条件()
// should_return 3_when_input_xxx_and_xxx
{
    Assert.assertXXX;
}
}

基础注解

  

   用例执行顺序 @FixMethodOrder,取值JVM(代码定义顺序)、NAME_ASCEDING(方法字母顺序)、DEFAULT(不可预期顺序)

  

基础断言

  

 高级断言 AssertThat

  

 异常测试

  @Test(expected = NullPointerException.class)

测试套

  

其他注解:

  @Ignore:忽略某些用例测试(一般要写上注释原因)

  @Test(timeout = 2)       单位毫秒,测试执行效率,超时参数,适用于单个方法

  

 参数化测试 @RunWith(Parameterized.class)

  

   场景:使用不同的值反复运行相同的测试

      1、@RunWith(Parameterized.class) 注释测试类

      2、创建使用@Parameter的公共静态方法,返回集合作为测试数据集

      3、创建构造函数或使用@Parameter来接收测试数据内容  

  

 

 Junit5 vs Junit4

  参考:https://www.baeldung.com/junit-5-migration

  • 注解变化 Before/After -> xxEach/xxAll

    

  • no longer use @Test annotation for specifying expectations.

   

  •  Write assertion messages in a lambda in JUnit 5, allowing the lazy evaluation to skip complex message construction until needed:

    

  •  @RunWith -> @ExtendWith

    In JUnit 5, the @RunWith annotation has been replaced by the more powerful @ExtendWith annotation. However, the @RunWith annotation can still be used in JUnit 5 for the sake of backward compatibility.

    

posted @ 2022-12-31 23:22  飞翔在天  阅读(59)  评论(0编辑  收藏  举报