欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring单元测试类ApplicationTests错误的解决

程序员文章站 2022-03-09 12:57:01
目录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());
	}	
}

Spring单元测试类ApplicationTests错误的解决

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

可能由以上两种可能导致出错

要这样

Spring单元测试类ApplicationTests错误的解决

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。