JUnit的配置及使用
一、安装插件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的配置及使用的更多相关文章
- Junit简单配置
Junit简单配置的步骤如下: 1.在WEB-INF目录下的lib里面放一个junit包,我用的是junit-4.9.jar: 2.选定要测试的类,右键单击该类,新建一个Junit Test Case ...
- Android:单元测试Junit的配置
在实际开发中,开发android软件的过程需要不断地进行测试.而使用Junit测试框架,侧是正规Android开发的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性.... ...
- JUnit 单元测试 配置
选中工程,右键 built path , add liberaries , JUnit , JUnit4 这样就不用每次测试时都在main方法中写了
- 在项目中创建单元测试时junit的配置和使用
首先配置项目中AndroidMainfest.xml文件,加入 <instrumentation android:name="android.test.InstrumentationT ...
- 单独创建一个Android Test Project 时junit 的配置和使用
现在的集成ADT后Eclipse都可以直接创建Android Test Project 如图所示: 命名后选择你要测试的单元程序,比如我自己准备测试sms,便可以如图所示那样选择 本人新建的测试工程为 ...
- 使用Junit4对web项目进行测试(一)Junit初配置
Junit测试用例不是用来证明你是对的,而是用来证明你没有错 1.功能 -在项目未在浏览器运行之前对获得的结果和预期的结果进行比较调试,减少BUG和发布时的修复工作 2.测试类和代码类应分开存放. ...
- Eclipse+JUnit+Selenium配置
运行环境:Windows XP.Firefox.Firefox需要安装在标准路径下"C:\Program Files\Mozilla Firefox\firefox.exe",否则 ...
- junit中配置log4j日志
在对项目单元测试的时候,有时候会使用log4j来打印日志,这个时候需要对log4j进行配置. 声明和继承SpringJUnit4ClassRunner类,在这个类中对log4j的配置文件进行加载. p ...
- Junit测试用例配置Log4j
用Junit测试非常方便,但有时我们想要看日志来方便排除,使用spring+log4j时,用Junit测试看日志很多人都不太会,即如何将Junit与log4j进行整合. 我也是研究了半天,才终于找到了 ...
随机推荐
- June 6. 2018 Week 23rd Wednesday
You are confined only by the walls you build yourself. 限制你的只有你自己筑起的墙. From Andrew Murphy. Let's repe ...
- 【字符串】ZSC-字符串编辑
Description 从键盘输入一个字符串(长度<=40个字符),对字符串进行编辑.例如,输入"This is a book." 现对该字符串进行编辑,编辑功能有:(1) ...
- vue项目,ie11 浏览器报 Promise 未定义的错误
报错: {description: "“Promise”未定义", message: "“Promise”未定义", name: "Referenc ...
- 学习Ant Design Pro的一点心得
1.控制反转(Inversion of Control)是一种「思想」,依赖注入(Dependency Injection)则是这一思想的一种具体「实现方式」 2.react 要注意全局 id相同 3 ...
- SpringBoot2.0 最简单的 idea 快速创建项目
第一步 第二步 第三步 以上就是idea快速创建springboot的方法,创建之后等maven 依赖下载完成,就可以使用
- influxdb问题解决
一.influxdb启动不了? 清空数据文件夹: cd /var/lib/influxdb/data rm -rf * 清除完就可以启动了,然后查看/var/lib/influxdb下data和met ...
- 在 PHP 7 中不要做的 10 件事
在 PHP 7 中不要做的 10 件事 1. 不要使用 mysql_ 函数 这一天终于来了,从此你不仅仅“不应该”使用mysql_函数.PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好 ...
- 如何在excel单元格中插入图片批注
在excel单元格中插入图片批注的方法: 1.选定要插入图片的单元格,然后右键选择插入批注. 2.然后会插入一个批注框,为了不影响图片效果,可以将批注文字都删除.然后鼠标移动到批注框边角再右键. 3. ...
- Android自动登录功能的实现
登陆页面布局设计: <LinearLayout android:layout_width="wrap_content" android:layout_height=" ...
- C#基于wpf编写的串口调试助手
支持数据保存,自定义协议解码等功能 链接:https://pan.baidu.com/s/1zvhcES4QIjpDDJGzth1qOA 提取码:lp2x