java如何看单元测试的错误_spring 单元测试方法及其错误整理

spring 单元测试及其错误整理

目录:

NO1 spring单元测试方法

- NO1.1 pom.xml文件中确认有下面依赖

- NO1.2 在需要测试的类上,或者新建的测试类上添加注解

- NO1.3 注解说明

NO2 spirng单元测试错误整理

- NO2.1 java.lang.IllegalStateException: Failed to load ApplicationContext

- NO2.2 java.lang.NoSuchMethodError: org.springframework.util.Assert.notNull

- NO2.3 The import org.springframework.test.context.junit4.SpringJUnit4ClassRunner cannot be resolved

NO1 spring 单元测试方法

NO1.1 pom.xml文件中确认有下面的依赖

javax.servlet

javax.servlet-api

3.1.0

junit

junit

4.11

test

org.springframework

spring-test

5.0.6.RELEASE

test

org.springframework

spring-core

5.0.6.RELEASE

NO1.2 在需要测试的类上,或者新建的测试类上添加注解

package com.authrization;

import com.authrization.dao.RoleDao;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import org.springframework.test.context.web.WebAppConfiguration;

/**

* @author weicong

* @data 2018/6/1 12:02

*/

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = {"classpath*:config/spring*.xml"})

@WebAppConfiguration

public class TestBBB {

@Autowired

RoleDao roleDao;

@Test

public void testddd(){

System.out.println(roleDao.listRoles());

}

}

NO1.3 注解说明

(1)如果 @ContextConfiguration 有多个xml文件可以这样写

@ContextConfiguration(locations = {"classpath*:config/spring-context*.xml","classpath*:config/spring-mvc.xml"})

(2)有些web项目中不用加 @WebAppConfiguration 也可以运行单元测试

NO2 spirng 单元测试错误整理

NO2.1 java.lang.IllegalStateException: Failed to load ApplicationContext

31647ff33a2119efa779d68dd66ae307.png

可能原因:

(1)缺乏 servlet-api 依赖

javax.servlet

javax.servlet-api

4.0.0

provided

(2)测试类上缺乏 @WebAppConfiguration 注解

NO2.2 java.lang.NoSuchMethodError: org.springframework.util.Assert.notNull

d52e61b6bb4c3f372556aba511b53487.png

可能原因:

(1)**spirng-test ** 依赖版本与spring全家桶(spring-core、spring-beans、spring-web等等)的依赖版本相差太大,尽量保持spring系列依赖版本全部相同

参看:

https://stackoverflow.com/questions/28013452/could-not-load-testcontextbootstrapper-spring-unit-testing

040f665a3861393220a737f459135c95.png

(2)重复的依赖

NO2.3 java.lang.NoClassDefFoundError: org/springframework/core/ErrorCoded

4c6236a2618760594e570ed47780acac.png

可能原因:

(1)缺乏 spring-core 依赖

NO2.3 The import org.springframework.test.context.junit4.SpringJUnit4ClassRunner cannot be resolved

原因:maven依赖指定了在test范围才生效

解决:去掉test

b750eeb087a08950a63f08fd93fde5ec.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值