【Junit5学习-断言】

学习Junit5-断言:

Junit5 学习记录

  • 一周掌握 Junit5的基础用法

assert断言:

Junit5 学习环境:java15+idea2022.2+maven3.8
首先需要在pom.xml引入两个依赖

    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <version>5.8.2</version>
      <scope>test</scope>
    </dependency>
 <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.0.0-M5</version>
          <configuration>
          </configuration>
 </plugin>
     
  1. 命名规范: 用例编写路径:Project/src/Test/java下编写,并类名要以Test开头或者结尾,idea本身是对该类名没有限制的,但是使用maven命令运行的话,会去检索Test关键字,不用Test关键字命名则不会被扫描到,也就不执行,也可自定义关键字,需要再pom.xml中说明,如图:需要配置 maven-surefire-plugin
    在这里插入图片描述

  2. Junit 常用断言assert方法
    测试用例使用:@Test注解表示一条用例
    常用断言方法:assertEquals,用来对比期望值与实际值是否相同,assertTrue ,用来对表达式是否是true,assertNotNull,用来判断表达式是是都是Null,assert还有很多其他的断言方法,可以使用,不具体展开记录了
    在这里插入图片描述
    上面的测试用例,如果有一个表达式失败,则停止执行,后面的将不会执行到,因此引用了assertAll ,来解决上面问题
    在这里插入图片描述
    此方法,最后两条应该是失败的,看一下执行结果,能看出,倒数第二条失败后,又继续执行了倒数第一条
    在这里插入图片描述

  3. 用例的执行顺序
    用例在 执行前后可能会 有一些公共的方法需要执行,比如说加载全局变量,关闭I/O等操作,这里可以用注解:@BeforeAll @BeforeEach @AfterAll @AfterEach来完成
    他们的执行顺序结合继承,总结如下:
    在这里插入图片描述

@BeforeAll @AfterAll 和 @BeforeEach @AfterEach的区别,
他们的生命周期不同,前者,它在整个测试套件前后执行,后者是每一个测试用例的前后都执行

  1. 执行测试用例
    可以点击idea 上面绿色三角形来执行测试类或者测试方法,也可以使用maven命令来执行:

在pom.xml同级目录下执行:mvn test 命令,可以执行该项目下所有的测试用例或者是pom.xml中配置的用例。
执行某个类或多个类:mvn test ‘-Dtest=包名.类名1,包名.类名2…’,
如果执行某个类中的某方法或多个方法:mvn test ‘-Dtest=包名.类名#方法名1+方法名2…’
还有正则匹配:mvn test “-Dtest=com.zqh.*Test”,来执行com.zqh包下面以Test结尾的类的用例`,

或者是在配置文件配置想要执行的包、类等
pom.xml里使用<include>标签

        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.0.0-M5</version>
          <configuration>
            <!-- 如果这个配置了includes,用命令行就只运行这里的用例-->
            <includes>
              <!-- 自定义命名规则,包含zqh的可扫描为测试用例 -->
              <include>com/zqh/*</include>
            </includes>
          </configuration>
        </plugin>
  1. 不被执行的测试类
    这里使用配置文件来实现不被执行的测试类,使用标签<exclude>
<plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>3.0.0-M5</version>
          <configuration>
             <includes></includes>
             <!-- 不被执行的测试用例-->
             <excludes>
               <exclude>com/zqh/junit/*</exclude>
             </excludes>
          </configuration>
 </plugin>

多断言:

  1. assertAll
    上面学习的assertAll可以实现软断言,也就是,当一个测试用例执行失败时,不会导致程序结束,会继续执行后面的代码
  2. lambda表达式
    上面的assertAll结合lambda表达式是用
    lambda表达式的格式:(形式参数) ->(代码块)

3.把断言的内容放在list里
在这里插入图片描述
4.高级断言hamcrest
首先pom.xml要加入hamcrest如下:
在这里插入图片描述
有这些常用的断言,这些被称之为匹配器
在这里插入图片描述
要注意,这里上面的方法导包,一定是导的hamcrest下面的

  • Is:将一个对象作为参数来检验相等性的,Is(Matcher<T>), 搭配其他匹配方法使用,来达到增强表现能力

  • equalTo:一般情况下 is和equalTo不分家,is(equalTo(object<T>)),也是来表示 是否相等的

  • not:这个是验证不相等性,用法与前面equalTo类似 is(not(equalTo(object<T>))),来表示是否不相等,与效果 not(Object<T>)一样
    在这里插入图片描述

  • hansItem:判断list里是否包含某个值,是否是String型或者其他型
    在这里插入图片描述

  • allOf: 先上用法:allOf(条件1,条件2,条件3),allOf表示,这里面的所有条件都需要匹配才是测试通过,其中一个不满足,就会单元失败
    在这里插入图片描述

  • anyOf:使用与allOf一样,表示,只要一个条件匹配成功,则断言成功

  • both: both里也是添加匹配器的,与and搭配使用,代表 2个条件都匹配,否则断言失败
    在这里插入图片描述

  • either: either 与 or 搭配使用,表示:只匹配其中之一则表示断言成功
    在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值