SpringBoot单元测试断言 assertions

这篇具有很好参考价值的文章主要介绍了SpringBoot单元测试断言 assertions。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

断言

断言(assertions)是测试方法中的核心部分,用来对测试需要满足的条件进行验证。这些断言方法都是 org.junit.jupiter.api.Assertions 的静态方法。JUnit 5 内置的断言可以分成如下几个类别:

1、简单断言

springboottest 断言,面试题及答案,单元测试,spring boot,junit

2、数组断言

通过 assertArrayEquals 方法来判断两个对象或原始类型的数组是否相等

配置类中

也可以设置异常报文,第一个参数是期望值,第二个参数是实际值

@Test
@DisplayName("数组断言测试")
void testArrayAssertions(){
    Assertions.assertArrayEquals(new int[]{1,2},new int[]{1,2},"元素不一样");
}

详细步骤:

Spring boot目录结构一般是固定的:
springboottest 断言,面试题及答案,单元测试,spring boot,junit
选中要测试的方法体右键:
springboottest 断言,面试题及答案,单元测试,spring boot,junit
会弹出新建测试类的框
springboottest 断言,面试题及答案,单元测试,spring boot,junit
上面一个是我测试建的,如果要新建应该选第二个:Create New Test…
springboottest 断言,面试题及答案,单元测试,spring boot,junit
上面是生成测试类的名称以及测试的一些属性,下面是选择你要放入的待测试的模块:

下面开始上代码:

Spring boot自带的测试基类(启动配置):

package com.ai.rai.group.workflow.application;
 
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
 
/**
 * Project:bean_generator
 * Author:hangke
 * Date:2017/1/13
 * Description://TODO add description here
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = TestApplication.class)
public class BaseTestApplication
{
    protected Logger logger = LoggerFactory.getLogger(this.getClass());
}

测试类启动入口(一般都有的,这边也贴一下吧):

package com.ai.rai.group.workflow.application;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
 
/**
 * Project:html_template
 * Author:hangke
 * Date:2017/3/22
 * Description://TODO add description here
 */
@SpringBootApplication
@ComponentScan(basePackages={"com.ai", "com.asiainfo"})
public class TestApplication
{
    public static void main(String[] args)
    {
        SpringApplication.run(TestApplication.class,args);
    }
}

待测试的Service方法就不贴了,根据自己的实际情况写逻辑就行;

测试类(使用依赖注入):

package com.ai.rai.group.workflow.service.impl;
 
import com.ai.rai.group.workflow.application.BaseTestApplication;
import com.ai.rai.group.workflow.entity.beans.TmWorkInst;
import com.ai.rai.group.workflow.service.IWorkFlowService;
import org.apache.commons.collections.bag.SynchronizedSortedBag;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import sun.tools.jar.Main;
 
import java.util.List;
 
import static org.junit.Assert.*;
@RunWith(SpringJUnit4ClassRunner.class)
public class WorkFlowServiceImpllswTest extends BaseTestApplication {
 
    //Service里面Dao用了依赖注入,这便不能用new对象的方式
    @Autowired
    IWorkFlowService workFlowServiceImpl;
 
    @Test
    public void selectWorkInstById() {
        //这个用的之前写好的Service测试,
        TmWorkInst workInst = new TmWorkInst();
        List<TmWorkInst> ss = workFlowServiceImpl.selectWorkInstById(workInst);
        for (TmWorkInst o : ss)
            System.out.println("==============="+o.toString());
    }
}

控制台部分信息打印:
springboottest 断言,面试题及答案,单元测试,spring boot,junit

加断言

正常的单元测试流程还需要加断言打印日志

加断言可以避免对数据库的误操作,以及缩短测试流程(断言失败就不再执行之后的代码了)

代码:

package com.ai.rai.group.workflow.service.impl;
 
import com.ai.rai.group.workflow.application.BaseTestApplication;
import com.ai.rai.group.workflow.entity.beans.TmWorkInst;
import com.ai.rai.group.workflow.service.IWorkFlowService;
import org.apache.commons.collections.bag.SynchronizedSortedBag;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import sun.tools.jar.Main;
 
import java.util.List;
 
import static org.junit.Assert.*;
 
@RunWith(SpringJUnit4ClassRunner.class)
public class WorkFlowServiceImpllswTest extends BaseTestApplication {
 
    //Service里面Dao用了依赖注入,这便不能用new对象的方式
    @Autowired
    IWorkFlowService workFlowServiceImpl;
 
    @Test
    public void selectWorkInstById() {
        TmWorkInst workInst = new TmWorkInst();
        List<TmWorkInst> ss = workFlowServiceImpl.selectWorkInstById(workInst);
        //添加断言(判空) 
        assertNull(ss);
        for (TmWorkInst o : ss)
            System.out.println("===============" + o.toString());
    }
}

查看日志:
springboottest 断言,面试题及答案,单元测试,spring boot,junit文章来源地址https://www.toymoban.com/news/detail-744426.html

到了这里,关于SpringBoot单元测试断言 assertions的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 精进单元测试技能 —— Pytest断言的艺术!

    精进单元测试技能 —— Pytest断言的艺术!

    本篇文章主要是阐述Pytest在断言方面的应用。让大家能够了解和掌握Pytest针对断言设计了多种功能以适应在不同测试场景上使用。 了解断言的基础 在Pytest中,断言是通过  assert  语句来实现的。简单的断言通常用于验证预期值和实际值是否相等,例如: 然而除此之外,Pyt

    2024年02月03日
    浏览(7)
  • Unitest单元测试,常用断言方法Assertion

    unittest库提供了很多实用方法来检测程序运行的结果和预期。包括三种类型的方法,每一种都覆盖了典型的类型,比如: 检查相等值、逻辑比较、异常 如果给定的Assertion通过了,那么测试会执行下一行代码。如果给定的assertion没有通过,测试会暂停并且生成错误信息。unitt

    2024年02月05日
    浏览(9)
  • 精进单元测试技能——Pytest断言的艺术

    精进单元测试技能——Pytest断言的艺术

    本篇文章主要是阐述Pytest在断言方面的应用。让大家能够了解和掌握Pytest针对断言设计了多种功能以适应在不同测试场景上使用。 了解断言的基础 在Pytest中,断言是通过  assert  语句来实现的。简单的断言通常用于验证预期值和实际值是否相等,例如: 然而除此之外,Pyt

    2024年01月20日
    浏览(8)
  • 白盒测试(单元测试使用assertThat中equalTo断言)

    白盒测试(单元测试使用assertThat中equalTo断言)

    题目1 :根据下列流程图编写程序实现相应分析处理并显示结果。返回结果“a=x:”(x为2、3或4);其中变量x、y均须为整型。编写程序代码,使用JUnit框架编写测试类对编写的程序代码进行测试,测试类中设计最少的测试数据满足语句覆盖测试,每条测试数据需要在测试类中

    2024年02月13日
    浏览(14)
  • C++中的断言机制与gtest单元测试

    C++中的断言机制与gtest单元测试

       这部分内容网上已经有很多人讲了,我就不做重复性工作,制造垃圾了,大家看看下面两个链接就可以了,因为我的专栏除了分享自己学习的知识,主要想为大家提供完整学习路线,让大家的知识体系更加完善! (1)参考:https://www.cnblogs.com/lvchaoshun/p/7816288.html (1)参考:

    2023年04月08日
    浏览(13)
  • 【单元测试】Junit 4(三)--Junit4断言

    ​ **断言(assertion)**是一种在程序中的一阶逻辑(如:一个结果为真或假的逻辑判断式),目的为了表示与验证软件开发者预期的结果——当程序执行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止执行,并给出错误信息。 这里我们直接上例子 接下来我们

    2024年02月08日
    浏览(9)
  • 软件测试20个基础面试题及答案

    软件测试20个基础面试题及答案

    什么是软件测试? 答案:软件测试是指在预定的环境中运行程序,为了发现软件存在的错误、缺陷以及其他不符合要求的行为的过程。 软件测试的目的是什么? 答案:软件测试的主要目的是保证软件的质量,并尽可能大程度地减少软件存在的缺陷和错误。 你了解软件测试的

    2024年02月16日
    浏览(12)
  • 白盒测试(单元测试JUnit使用断言assertThat中startsWith、endsWith方法)

    目录 一、背景知识 二、assertThat-字符串相关匹配符 1、startsWith 2、endsWith 三、代码

    2024年02月07日
    浏览(10)
  • spring boot 单元测试JUnit5使用断言Assertions和假定Assumptions、嵌套、参数测试

    spring boot 单元测试JUnit5使用断言Assertions和假定Assumptions、嵌套、参数测试 本文基于spirng boot 2.7.11, 大家注意自己的版本 Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库 SpringBoot 2.4 以上版本移除了默认对 Vintage 的依赖 源码地址:https://gitcode.net/qq_39339588/springboot.git 1.

    2024年02月11日
    浏览(37)
  • 100个变态的软件测试面试题及答案!——看完变态面试官对你竖起大拇指!

    【纯干货!!!】花费了整整3天,整理出来的全网最实用软件测试面试大全,一共30道题目+答案的纯干货,希望大家多多支持,建议 点赞!!收藏!!长文警告,全文共12000+字,涵盖软件测试面试可能遇到的所有问题,希望对大家有帮助,不过大家最好不要硬背,实战大于

    2023年04月19日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包