Spring单元测试类ApplicationTests错误的解决
程序员文章站
2022-06-17 14:44:21
目录spring单元测试类applicationtests错误1)正确写法2)异常写法springtest单元测试错误经过查询资料总结出现此错误的原因可能有两种spring单元测试类applicati...
spring单元测试类applicationtests错误
1)正确写法
package com.boot.demo02restful; import org.junit.assert; import org.junit.before; import org.junit.test; import org.junit.runner.runwith; import org.springframework.beans.factory.annotation.autowired; import org.springframework.beans.factory.annotation.qualifier; import org.springframework.boot.test.context.springboottest; import org.springframework.test.context.junit4.springjunit4classrunner; import com.boot.restful.application; import com.boot.restful.service.userservice; @runwith(springjunit4classrunner.class) @springboottest(classes=application.class) public class applicationtests { @autowired @qualifier(value="myuserservice") private userservice userserivce; @before public void setup() { // 准备,清空user表 userserivce.deleteallusers(); } @test public void test() throws exception { // 插入5个用户 userserivce.create("a", 1); userserivce.create("b", 2); userserivce.create("c", 3); userserivce.create("d", 4); userserivce.create("e", 5); // 查数据库,应该有5个用户 assert.assertequals(5, userserivce.getallusers().intvalue()); // 删除两个用户 userserivce.deletebyname("a"); userserivce.deletebyname("e"); // 查数据库,应该有5个用户 assert.assertequals(3, userserivce.getallusers().intvalue()); } }
2)异常写法
package com.boot.demo02restful; import org.junit.assert; import org.junit.before; import org.junit.test; import org.junit.runner.runwith; import org.springframework.beans.factory.annotation.autowired; import org.springframework.beans.factory.annotation.qualifier; import org.springframework.boot.test.context.springboottest; import org.springframework.test.context.junit4.springjunit4classrunner; import com.boot.restful.application; import com.boot.restful.service.userservice; @runwith(springjunit4classrunner.class) @springboottest public class applicationtests { @autowired @qualifier(value="myuserservice") private userservice userserivce; @before public void setup() { // 准备,清空user表 userserivce.deleteallusers(); } @test public void test() throws exception { // 插入5个用户 userserivce.create("a", 1); userserivce.create("b", 2); userserivce.create("c", 3); userserivce.create("d", 4); userserivce.create("e", 5); // 查数据库,应该有5个用户 assert.assertequals(5, userserivce.getallusers().intvalue()); // 删除两个用户 userserivce.deletebyname("a"); userserivce.deletebyname("e"); // 查数据库,应该有5个用户 assert.assertequals(3, userserivce.getallusers().intvalue()); } }
springtest单元测试错误
java.lang.exception: no runnable methods
at org.junit.runners.blockjunit4classrunner.validateinstancemethods(blockjunit4classrunner.java:191)
进行springtest单元测试时遇到的错误
经过查询资料总结出现此错误的原因可能有两种
1、没有在测试方法上写@test
2、@test包导入出错,很有可能导入的是org.junit.jupiter.api.test包,而使用spring单元测试需要的包是org.junit.test
可能由以上两种可能导致出错
要这样
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
推荐阅读