spring项目怎么运行单元测试程序

2025年03月18日 阅读 (51)

一、介绍

目前开发项目中,对于全部使用springBoot项目,并且从零开始开发,自动继承junit优质集成测试框架并不多见,至少在大部分公司中仍然需要对老代码进行维护,因此如何对改造代码进行测试,便成为了一个问题。

可以说,项目开发中,对于系统开发,分析占据了40%的精力,开发占据了30%,测试与维护占据了剩下的30%!

以下提供如何快速进行单元测试的简单代码模板!(当前内容仅作为小白入门,属于拾慧之言)

二、案例?(测试spring老项目)

1、引入依赖

往maven中引入如下相关jar包,保证测试的正常:

!--对spirng集成测试一些隐藏问题的兼容

dependency

groupIdjavax.servlet/groupId

artifactIdjavax.servlet-api/artifactId

version3.1.0/version

/dependency

!--json库

dependency

groupIdorg.codehaus.jackson/groupId

artifactIdjackson-mapper-asl/artifactId

version1.9.13/version

/dependency

dependency

groupIdcom.fasterxml.jackson.core/groupId

artifactIdjackson-core/artifactId

version2.8.3/version

/dependency

dependency

groupIdcom.fasterxml.jackson.core/groupId

artifactIdjackson-databind/artifactId

version2.8.3/version

/dependency

dependency

groupIdcom.fasterxml.jackson.core/groupId

artifactIdjackson-annotations/artifactId

version2.8.3/version

/dependency

2、引入基础测试类

测试类只需要根据老项目的基本路径和相关配置文件的位置进行首次配置,后面可以频繁地使用:

import lombok.extern.slf4j.Slf4j;

import org.junit.runner.RunWith;

import org.springframework.test.context.ContextConfiguration;

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

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

//为spring的容器进行初始化,加载对应的配置文件

public class BaseJunit {

/**

* 基础方法,可以手动进行一些初始化方法的调用

*/

}

3、建立对应的项目测试类 :

个人习惯是针对不同的controller类和service都建立对应的测试类,目前的IDEA也集成了相关的快捷键,可以快速到达:

public class MonthSaServiceTest extends BaseJunit{

/**

* 重点项目导入仓储

*/

private TbPmImportantDao tbPmImportantDao;

public void findDoneList {

TbPmImportant tbPmImportant=new TbPmImportant();

tbPmImportant.setcYear("2019");

tbPmImportant.setcMon("04");

tbPmImportant.setcStaffCode("800414");

ListTbPmImportant tbPmImportantList = tbPmImportantDao.selectByStaffCodeAndYearAndMonth(tbPmImportant);

log.info(tbPmImportantList.toString());

}

}

4、关于测试

一个好的开发测试,是从存在依赖关系(组合,聚合,继承,实现),功能单元方方面面的地方都开始渗透的。一般情况下,对于一个项目需要进行两个方面的测试,两个方面的验证,这样的系统才算是合格的。即是:

-------单元测试:是指针对代码层面的测试,详情见第一篇测试文章

-------功能测试:是指针对功能模块的测试,也即是我们常说的controller

-------上线测试:技术验证(产前验证方案)

-------上线测试:业务验证(产前验证方案)

(上线测试的一切测试均为验证你的项目和代码是没问题的,而不是为了让你进行纠错~)

郑重声明:玄微运势的内容来自于对中国传统文化的解读,对于未来的预测仅供参考。