Junit单元测试 org.junit.jupiter.api.extension.ParameterResolutionException异常处理

简介: Junit单元测试 org.junit.jupiter.api.extension.ParameterResolutionException异常处理

一、异常错误

想根据Id查询信息,在Junit单元测中报错

    @Select("select * from ce_questions where id = #{id};")
    List<CeQuestions> queryAuditDetailsById(@Param("id") Integer id);

8e464a23f5284c0595c9208138f310f5.png

    @Test
    public void queryAuditDetailsById(Integer id){
        List<CeQuestions> queryAuditDetailsById = ceQuestionsMapper.queryAuditDetailsById(1);
        System.out.println(queryAuditDetailsById);
    }
org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [java.lang.Integer id] in method [public void com.ahead.CExperimentPlatform.LiaoTest.queryAuditDetailsById(java.lang.Integer)].

3f3db38dd51b4f03b30636170b3876cd.png

二、原因

@Test单元测试方法中不允许添加参数

三、解决方法

方法1.去除单元测试方法中的参数

(Integer id)删除即可,但这样必须手动添加调用方法中的id,并且只能测试查询单条数据,比如我要查询id=1的数据,就只能手动在括号里添加1

    @Test
    public void queryAuditDetailsById(){
        List<CeQuestions> queryAuditDetailsById = ceQuestionsMapper.queryAuditDetailsById(1);
        System.out.println(queryAuditDetailsById);
    }

方法2.使用参数化测试@ParameterizedTest

如果我要查询多条数据,自定义参数的话,可以使用参数化测试@ParameterizedTest

当然并不是直接使用,否则会报错,需要配置参数的值

org.junit.platform.commons.PreconditionViolationException: Configuration error: You must configure at least one set of arguments for this @ParameterizedTest

@ParameterizedTest需要配合 @ValueSource使用,@ValueSource用于简单用例的参数化,支持string,int等多种类型,类型均为数组

填入对应的参数,即可查询到需要的数据了

    @ParameterizedTest
    @ValueSource(ints = {1,2,3})
    public void queryAuditDetailsById(Integer id){
        List<CeQuestions> queryAuditDetailsById = ceQuestionsMapper.queryAuditDetailsById(id);
        System.out.println(queryAuditDetailsById);
    }

35033ddfb4ff4202a1814dce1cfe6b93.png

目录
相关文章
|
1月前
|
IDE Java 测试技术
Junit 单元测试
JUnit是Java常用的单元测试框架,简化了测试用例的编写和执行。其特点包括简单注解、自动化测试、可扩展性、灵活性及与IDE的集成。使用方法涉及创建测试类、利用注解如@Test、@BeforeEach等管理测试生命周期,以及使用各种断言方法验证结果。此外,JUnit支持参数化测试以覆盖更多输入组合,并能与Maven、Gradle等构建工具集成,提升测试效率和项目管理。
36 1
|
10天前
|
Java 测试技术 程序员
junit单元测试
junit单元测试
|
3月前
|
JSON API 开发工具
如何使用Postman 设计和测试一个API?
如何使用Postman 设计和测试一个API?
如何使用Postman 设计和测试一个API?
|
26天前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
90 3
|
30天前
|
安全 测试技术 API
|
1月前
|
JSON 测试技术 API
Postman Newman 实现 API 自动化测试的快速指南
Newman 是一款专为 Postman 打造的命令行工具,旨在通过自动运行 Postman 集合和环境,实现 API 测试的自动化。它使得开发者无需打开 Postman 图形界面,即可直接在命令行中执行测试用例。
|
1月前
|
XML Java 测试技术
TestNG 与 JUnit 测试框架:哪个更好?
【2月更文挑战第16天】
44 1
TestNG 与 JUnit 测试框架:哪个更好?
|
2月前
|
JSON JavaScript 前端开发
提升 API 测试效率:Postman Tests 详解
Postman 不仅是一个强大的 API 开发工具,它还提供了创建自动化测试脚本的能力,这些脚本可以用于检验API请求得到的响应是否符合预期。这些测试脚本被称为 “Tests”,支持使用 JavaScript 编程语言进行编写,并且 Postman 提供了一系列的断言库来帮助你检查包括但不限于状态码、响应内容以及响应时间在内的响应数据。
|
2月前
|
开发框架 JSON .NET
初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试
初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试
72 0
|
2月前
|
运维 Java 测试技术
spring 单元测试 Junit
spring 单元测试 Junit
42 2