一、安装插件JUnitGenertor V2.0

File->Setting->Plugins->在搜索框里输入JUintGenerator V2.0

二、导入JUnit相关jar包

1. junit-4.12.jar

2. hamcrest-core-1.3.jar

三、待测试类添加JUnit测试类

打开待测试类,按快捷键 ALT+INSERT,选择JUnit 4

四、编写测试代码

demo展示:

下面是一个单元测试驱动器,根据参数情况分别调用Servlet(待测试类)的方法来进行断言验证。

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map; import static org.junit.Assert.assertEquals; /**
* Servlet Tester.
*
* @author <Authors name>
* @since <pre>四月 3, 2019</pre>
* @version 1.0
*/
@RunWith(Parameterized.class)
public class ServletTest { private Map<String, String> parameters; // 定义参数映射集合
private String result; // 预期结果
@Parameterized.Parameters
public static Collection data() {
// 实例化参数映射集合,参数就是测试用例中的参数
Map<String , String> parameters1 = new HashMap<String , String>(){{
// 查询所有书籍模块参数
put("name", "虚拟");
put("msg", "");
}}; Map<String , String> parameters2 = new HashMap<String , String>(){{
// 查询某个书籍详情模块参数
put("id", "");
put("msg", "");
}}; Map<String , String> parameters3 = new HashMap<String , String>(){{
// 登陆模块参数
put("name", "hey");
put("password", "hey123");
put("msg", "");
}}; Map<String , String> parameters4 = new HashMap<String , String>(){{
// 借书参数
put("id", "");
put("msg", "");
}}; return Arrays.asList(new Object[][]{
{"{\"address\":\"\",\"author\":\"周志明\",\"detail\":\"\",\"id\":1,\"name\":\"无法理解虚拟机\",\"press\":\"北京大出版社\",\"pressdate\":\"2019-03-06\",\"status\":\"\"}",parameters1},
{"{\"address\":\"P0A1\",\"author\":\"\",\"detail\":\"很好\",\"id\":1,\"name\":\"无法理解虚拟机\",\"press\":\"\",\"pressdate\":\"\",\"status\":\"已出馆\"}",parameters2},
{"",parameters3},
{"",parameters4},
});
} public ServletTest(String result,Map<String, String> parameters) {
this.parameters = parameters;
this.result = result;
} @Before
public void before() throws Exception {
System.out.println("开始测试...."); } @After
public void after() throws Exception {
} /**
*
* Method: doPost(HttpServletRequest request, HttpServletResponse response)
*
*/
@Test
public void testDoPost() throws Exception {
//TODO: Test goes here...
} /**
*
* Method: doGet(HttpServletRequest request, HttpServletResponse response)
*
*/
@Test
public void testDoGet() throws Exception {
assertEquals(result,sendPost(parameters));
} public static String sendPost(Map<String, String> parameters) { String result = "";// 返回的结果
BufferedReader in = null;// 读取响应输入流
PrintWriter out = null;
StringBuffer sb = new StringBuffer();// 处理请求参数
String params = "";// 编码之后的参数
try {
// 编码请求参数
if (parameters.size() == ) {
for (String name : parameters.keySet()) {
sb.append(name).append("=").append(
java.net.URLEncoder.encode(parameters.get(name),
"UTF-8"));
}
params = sb.toString();
} else {
for (String name : parameters.keySet()) {
sb.append(name).append("=").append(
java.net.URLEncoder.encode(parameters.get(name),
"UTF-8")).append("&");
}
String temp_params = sb.toString();
params = temp_params.substring(, temp_params.length() - );
} String url = "http://localhost:8080/Servlet";
// 创建URL对象
java.net.URL connURL = new java.net.URL(url);
// 打开URL连接
java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connURL
.openConnection();
// 设置通用属性
httpConn.setRequestProperty("Accept", "*/*");
httpConn.setRequestProperty("Connection", "Keep-Alive");
httpConn.setRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
// 设置POST方式
httpConn.setDoInput(true);
httpConn.setDoOutput(true);
// 获取HttpURLConnection对象对应的输出流
out = new PrintWriter(httpConn.getOutputStream());
// 发送请求参数
out.write(params);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应,设置编码方式
in = new BufferedReader(new InputStreamReader(httpConn
.getInputStream(), "UTF-8"));
String line; // 读取返回的内容
while ((line = in.readLine()) != null) {
result += line;
} } catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
} }

JUnit的配置及使用的更多相关文章

  1. Junit简单配置

    Junit简单配置的步骤如下: 1.在WEB-INF目录下的lib里面放一个junit包,我用的是junit-4.9.jar: 2.选定要测试的类,右键单击该类,新建一个Junit Test Case ...

  2. Android:单元测试Junit的配置

    在实际开发中,开发android软件的过程需要不断地进行测试.而使用Junit测试框架,侧是正规Android开发的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性.... ...

  3. JUnit 单元测试 配置

    选中工程,右键  built path , add liberaries , JUnit , JUnit4 这样就不用每次测试时都在main方法中写了

  4. 在项目中创建单元测试时junit的配置和使用

    首先配置项目中AndroidMainfest.xml文件,加入 <instrumentation android:name="android.test.InstrumentationT ...

  5. 单独创建一个Android Test Project 时junit 的配置和使用

    现在的集成ADT后Eclipse都可以直接创建Android Test Project 如图所示: 命名后选择你要测试的单元程序,比如我自己准备测试sms,便可以如图所示那样选择 本人新建的测试工程为 ...

  6. 使用Junit4对web项目进行测试(一)Junit初配置

    Junit测试用例不是用来证明你是对的,而是用来证明你没有错 1.功能   -在项目未在浏览器运行之前对获得的结果和预期的结果进行比较调试,减少BUG和发布时的修复工作 2.测试类和代码类应分开存放. ...

  7. Eclipse+JUnit+Selenium配置

    运行环境:Windows XP.Firefox.Firefox需要安装在标准路径下"C:\Program Files\Mozilla Firefox\firefox.exe",否则 ...

  8. junit中配置log4j日志

    在对项目单元测试的时候,有时候会使用log4j来打印日志,这个时候需要对log4j进行配置. 声明和继承SpringJUnit4ClassRunner类,在这个类中对log4j的配置文件进行加载. p ...

  9. Junit测试用例配置Log4j

    用Junit测试非常方便,但有时我们想要看日志来方便排除,使用spring+log4j时,用Junit测试看日志很多人都不太会,即如何将Junit与log4j进行整合. 我也是研究了半天,才终于找到了 ...

随机推荐

  1. 强大而灵活的字体图标替代库iconfont

       前言概述 在开发网页制作过程中通常需要一些网页小图标,前端需要PS切图,将单个小图标icon组合成CSS雪碧图过程中,需要一些时间和精力; 如果网页制作中需要的小图标icon有一套css框架库集 ...

  2. 我为什么要谈KeepAlive(文末增加nginx 负载tcp长连接保持 demo)

    http://blog.sina.com.cn/s/blog_e59371cc0102ux5w.html 最近工作中遇到一个问题,想把它记录下来,场景是这样的: 从上图可以看出,用户通过Client访 ...

  3. JS DOM 实现删除和添加的功能

    <!DOCTYPE html> <html> <head> <title>发表评论</title> <link rel="s ...

  4. bs4 解析 以及用法

    bs4解析 bs4: 环境安装: lxml bs4 bs4编码流程: 1.实例化一个bs4对象,且将页面源码数据加载到该对象中 2.bs相关的方法或者属性实现标签定位 3.取文本或者取属性 bs的属性 ...

  5. HTTP请求行、请求头、请求体详解

    HTTP 请求头各参数具体含义 Header 解释 示例Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/htmlAccept-Charset 浏览器可以接 ...

  6. Python:Day03 变量、字符编码

    配置环境变量 右键计算机--->属性--->高级系统设置--->高级--->环境变量--->系统变量--->找到Path,双击编辑--->将程序的路径粘贴上去 ...

  7. ORA-4031 During Startup Nomount using RMAN without parameter file (PFILE) (Doc ID 1176443.1)

    ORA-4031 During Startup Nomount using RMAN without parameter file (PFILE) (Doc ID 1176443.1) APPLIES ...

  8. Spring Security(九):2.4.4 Checking out the Source(检查来源)

    Since Spring Security is an Open Source project, we’d strongly encourage you to check out the source ...

  9. Intel发6款全新9代i9/i7/i5 CPU:巅峰8核

    在旧金山举办的GDC19活动中,Intel正式发布9代酷睿新品,面向移动平台的H系列标压处理器,定于今年第二季度上市. 换言之,最快4月份我们就能见到搭载后缀H的9代酷睿CPU笔记本(游戏本)等发售了 ...

  10. redis学习(三)——List数据类型

    一.概述      在Redis中,List类型是按照插入顺序排序的字符串链表.和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素.在插入时,如果该键并不存在,R ...