一、异常错误
想根据Id查询信息,在Junit单元测中报错
@Select("select * from ce_questions where id = #{id};")
List<CeQuestions> queryAuditDetailsById(@Param("id") Integer id);
@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)].
二、原因
@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等多种类型,类型均为数组
填入对应的参数,即可查询到需要的数据了文章来源:https://www.toymoban.com/news/detail-421052.html
@ParameterizedTest
@ValueSource(ints = {1,2,3})
public void queryAuditDetailsById(Integer id){
List<CeQuestions> queryAuditDetailsById = ceQuestionsMapper.queryAuditDetailsById(id);
System.out.println(queryAuditDetailsById);
}
文章来源地址https://www.toymoban.com/news/detail-421052.html
到了这里,关于Junit单元测试 org.junit.jupiter.api.extension.ParameterResolutionException异常处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!