junit4进行单元测试

一、前言

  提供服务的时候,为了保证服务的正确性,有时候需要编写测试类验证其正确性和可用性。以前的做法都是自己简单写一个控制层,然后在控制层里调用服务并测试,这样做虽然能够达到测试的目的,但是太不专业了。还是老老实实的编写测试类进行测试吧。

二、Junit4依赖

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version>
</dependency>
<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.2.5.RELEASE</version><scope>test</scope>
</dependency>

  如果出现如下异常:

  

  则加入如下依赖。

<dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>3.0.1</version><scope>test</scope>
</dependency>

三、目录结构

  

 

四、测试类

  通过自动注入方式获取bean

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 com.alibaba.fastjson.JSONObject;
import com.yyjz.icop.usercenter.service.ISupplierService;
import com.yyjz.icop.usercenter.vo.SupplierVO;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/config/applicationContext.xml","file:src/main/webapp/WEB-INF/config/applicationContext-jpa.xml",
}) // 加载配置
public class UserExtTest{@Autowiredprivate ISupplierService supplierService;@Testpublic void addSupplier(){SupplierVO vo = new SupplierVO();vo.setSupplierId("1234567890");vo.setUserName("hjzgg");vo.setUserCode("hjzgg");vo.setUserMobile("1567c637914");JSONObject ans = supplierService.addSupplier(vo);System.out.println(ans.toJSONString());}
}

   注:@ContextConfiguration中locations文件配置,如果文件放在了WEB-INF/config目录下,配置如上所示。如果配置文件放入src/main/resources目录下,则改成"calsspath:applicationContext.xml"和"calsspath:applicationContext-jpa.xml" 。

  同时,如果配置文件中引用了properties的文件,也要改一下路径。测试完成之后在改回去。

  

 

  通过上下文获取bean

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;import com.alibaba.fastjson.JSONObject;
import com.yyjz.icop.usercenter.service.ISupplierService;
import com.yyjz.icop.usercenter.service.impl.SupplierServiceImpl;
import com.yyjz.icop.usercenter.vo.SupplierVO;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/config/applicationContext.xml","file:src/main/webapp/WEB-INF/config/applicationContext-jpa.xml",
}) // 加载配置
@WebAppConfiguration
public class UserExtTest{@Autowiredprivate ApplicationContext ac;@Testpublic void addSupplier(){ISupplierService supplierService = ac.getBean(SupplierServiceImpl.class);SupplierVO vo = new SupplierVO();vo.setSupplierId("1234567890");vo.setUserName("hjzgg");vo.setUserCode("hjzgg");vo.setUserMobile("15670637914");JSONObject ans = supplierService.addSupplier(vo);System.out.println(ans.toJSONString());}
}

  @WebAppConfiguration:测试环境使用,用来表示测试环境使用的ApplicationContext将是WebApplicationContext类型的;value指定web应用的根。默认值是:String value() default "src/main/webapp";

五、总结

  至此,测试类的简单使用完成。还需要更进一步学习测试类。

转载于:https://www.cnblogs.com/hujunzheng/p/5840479.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速搭建springmvc+spring data jpa工程

一、前言 这里简单讲述一下如何快速使用springmvc和spring data jpa搭建后台开发工程&#xff0c;并提供了一个简单的demo作为参考。 二、创建maven工程 http://www.cnblogs.com/hujunzheng/p/5450255.html 三、配置文件说明 1.application.properties jdbc.drivercom.mysql.jd…

dubbo服务提供与消费

一、前言 项目中用到了Dubbo&#xff0c;临时抱大腿&#xff0c;学习了dubbo的简单实用方法。现在就来总结一下dubbo如何提供服务&#xff0c;如何消费服务&#xff0c;并做了一个简单的demo作为参考。 二、Dubbo是什么 Dubbo是一个分布式服务框架&#xff0c;致力于提供高性能…

git亲测命令

一、Git新建本地分支与远程分支关联问题 git checkout -b branch_name origin/branch_name 或者 git branch --set-upstream branch_name origin/branch_name 或者 git branch branch_name git branch --set-upstream-toorigin/branch_name branch_name 二、查看本地分支所关…

mysql 7下载安装及问题解决

mysql 7安装及问题解决 一、mysql下载 下载地址&#xff1a;https://www.mysql.com/downloads/Community (GPL) DownloadsMySQL Community Server (GPL)Windows (x86, 64-bit), ZIP ArchiveNo thanks, just start my download.二、mysql安装 解压到指定目录在mysql bin目录下打…

RestTemplate发送请求并携带header信息

1、使用restTemplate的postForObject方法 注&#xff1a;目前没有发现发送携带header信息的getForObject方法。 HttpHeaders headers new HttpHeaders(); Enumeration<String> headerNames request.getHeaderNames(); while (headerNames.hasMoreElements()) {String k…

工作中常用到的命令

linux zip 和 unzip http://blog.csdn.net/shenyunsese/article/details/17556089 linux 查看日志 http://blog.chinaunix.net/uid-15463753-id-2943532.html linux 删除 http://www.jb51.net/LINUXjishu/179430.html linux查看末尾日志&#xff08;tail -f&#xff09; http:/…

tomcat开发远程调试端口以及利用eclipse进行远程调试

一、tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里&#xff1a;   SET CATALINA_OPTS-server -Xdebug -Xnoagent -Djava.compilerNONE -Xrunjdwp:transportdt_socket,servery,suspendn,address8899   Linux系统 在catalina.sh里&#xff1a;   CATALINA_OPTS&q…

webpack+react+redux+es6开发模式

一、预备知识 node, npm, react, redux, es6, webpack 二、学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入门教程 redux middleware 详解 Redux研究 React 入门实例教程 webpack学习demo NPM 使用介绍 三、工程搭建 之前有写过 webpackreactes6开发模式…

fiddler发送post请求

1.指定为 post 请求&#xff0c;输入 url Content-Type: application/x-www-form-urlencoded;charsetutf-8 request body中的参数格式&#xff1a;userNameadminicxp&userPassword123qwe!# 这种方式可以用 request.getParameter的方式来获得。 2.指定为 post 请求&#xff…

基于spring注解AOP的异常处理

一、前言 项目刚刚开发的时候&#xff0c;并没有做好充足的准备。开发到一定程度的时候才会想到还有一些问题没有解决。就比如今天我要说的一个问题&#xff1a;异常的处理。写程序的时候一般都会通过try...catch...finally对异常进行处理&#xff0c;但是我们真的能在写程序的…

Kettle之数据抽取、转换、装载

Kettle 官网 ETL利器Kettle实战应用解析系列 利用kettle组件导入excel文件到数据库 kettle中实现动态SQL查询 java中调用kettle转换文件 kettle 7.x版本下载&#xff1a;https://pan.baidu.com/s/1nvnzzCH  密码&#xff1a;6f5c mac 下运行spoon.sh,  windows下为spoon.bat…

webpack+react+redux+es6开发模式---续

一、前言 之前介绍了webpackreactreduxes6开发模式 &#xff0c;这个项目对于一个独立的功能节点来说是没有问题的。假如伴随着源源不断的需求&#xff0c;前段项目会涌现出更多的功能节点&#xff0c;需要独立部署运行。为了更好地管理这些独立的功能节点&#xff0c;我们需要…

JdbcTemplate使用小结

org.springframework.jdbc.core.JdbcTemplate.query(String sql, Object[] args, RowMapper<StaffUnionVO> rowMapper) throws DataAccessException 1.自定义rowMapper public class StaffUnionVO implements RowMapper<StaffUnionVO>, Serializable {private stat…

RabbitMQ安装和使用(和Spring集成)

一、安装Rabbit MQ   Rabbit MQ 是建立在强大的Erlang OTP平台上&#xff0c;因此安装Rabbit MQ的前提是安装Erlang。通过下面两个连接下载安装3.2.3 版本&#xff1a; 下载并安装 Eralng OTP For Windows (vR16B03)运行安装 Rabbit MQ Server Windows Installer (v3.2.3)具体…

单点登录实现(spring session+redis完成session共享)

一、前言 项目中用到的SSO&#xff0c;使用开源框架cas做的。简单的了解了一下cas&#xff0c;并学习了一下 单点登录的原理&#xff0c;有兴趣的同学也可以学习一下&#xff0c;写个demo玩一玩。 二、工程结构 我模拟了 sso的客户端和sso的服务端&#xff0c; sso-core中主要是…

maven deploy上传私服出错

error 内容如下 Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5: deploy (default-deploy) on project XXX pom文件增加如下配置 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifa…

加密策略

一、前言 这两天研究了一下项目中的密码加密&#xff0c;可以说得上是学到了很多。下面来大致说一下。 二、常用加密 1.单向加密算法 单向加密算法主要用来验证数据传输的过程中&#xff0c;是否被篡改过。 BASE64 严格地说&#xff0c;属于编码格式&#xff0c;而非加密算法 …

Spring Data JPA: 实现自定义Repository

一、前言 由于项目中的 实体&#xff08;entity&#xff09;默认都是继承一个父类&#xff08;包含一些公共的属性&#xff0c;比如创建时间&#xff0c;修改时间&#xff0c;是否删除&#xff0c;主键id&#xff09;。为了实现逻辑删除&#xff0c;一般会自己实现RepositoryFa…

java json和对象互相装换

java json和对象互相装换 1.com.alibaba.fastjson.JSON 2.com.fasterxml.jackson.databind.ObjectMapper 转载于:https://www.cnblogs.com/hujunzheng/p/6593491.html

js冲刺一下

js中__proto__和prototype的区别和关系 1.对象有属性__proto__,指向该对象的构造函数的原型对象。  2.方法除了有属性__proto__,还有属性prototype&#xff0c;prototype指向该方法的原型对象。 深入浅出妙用 Javascript 中 apply、call、bind ***两道面试题*** 关于js中伪数…