博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Spring配合Junit进行单元测试的总结
阅读量:5024 次
发布时间:2019-06-12

本文共 3246 字,大约阅读时间需要 10 分钟。

 最近公司的项目和自己的项目中都用到了spring集成
junit进行
单元测试,总结一下几种基本的用法:
  
1.直接对spring中注入的bean进行测试(以DAO为例):
  在测试类上添加@RunWith注解指定使用springJunit的测试运行器,@ContextConfiguration注解指定测试用的spring配置文件的位置
  之后我们就可以注入我们需要测试的bean进行测试,Junit在运行测试之前会先解析spring的配置文件,初始化spring中配置的bean
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath*:spring-config-test.xml"})
public class TestProjectDao {
@Autowired
ProjectDao projectDao;
@Test
public void testCreateProjectCode(){
long applyTime = System.currentTimeMillis();
Timestamp ts = new Timestamp(applyTime);
Map codeMap = projectDao.generateCode("5", "8",ts,"院内");
String projectCode = (String)codeMap.get("_project_code");
Timestamp apply_time = (Timestamp)codeMap.get("_apply_time");
System.out.print(projectCode);
System.out.print(apply_time.toString());
Assert.assertTrue(projectCode.length()==12);
}
  
2.对springMVC进行测试:
  spring3.2之后出现了org.springframework.test.web.servlet.MockMvc 类,对springMVC单元测试进行支持
  样例如下:
package com.jiaoyiping.baseproject;
import com.jiaoyiping.baseproject.privilege.controller.MeunController;
import com.jiaoyiping.baseproject.training.bean.Person;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.servlet.ModelAndView;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
/**
* Created with IntelliJ IDEA.
* User: 焦一平
* Date: 14-9-25
* Time: 下午6:45
* To change this template use File | Settings | File Templates.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
//@ContextConfiguration(classes = {WebMvcConfig.class, MockDataConfig.class})
@ContextConfiguration(locations={"classpath:/spring/applicationContext.xml", "classpath*:mvc-dispatcher-servlet.xml"})
public class TestMockMvc {
@Autowired
private org.springframework.web.context.WebApplicationContext context;
MockMvc mockMvc;
@Before
public void before() {
//可以对所有的controller来进行测试
mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
//仅仅对单个Controller来进行测试
// mockMvc = MockMvcBuilders.standaloneSetup(new MeunController()).build();
}
@Test
public void testGetMenu(){
try {
System.out.println("----------------------------");
ResultActions actions =
this.mockMvc.perform(get("/menu/manage.action"));
System.out.println(status());//
System.out.println(content().toString());
actions.andExpect(status().isOk());
//            actions.andExpect(content().contentType("text/html"));
System.out.println("----------------------------");
} catch (Exception e) {
e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
}
}

转载于:https://www.cnblogs.com/ceshi2016/p/6247648.html

你可能感兴趣的文章
Bzoj 3343: 教主的魔法
查看>>
括号序列(栈)
查看>>
一件趣事
查看>>
DevExpress控件TExtLookupComboBox实现多列模糊匹配输入的方法
查看>>
atom 调用g++编译cpp文件
查看>>
H3C HDLC协议特点
查看>>
iptables 网址转译 (Network address translation,NAT)
查看>>
ios __block typeof 编译错误解决
查看>>
android 插件形式运行未安装apk
查看>>
ios开发之 manage the concurrency with NSOperation
查看>>
Android权限 uses-permission
查看>>
NSEnumerator用法小结
查看>>
vim如何配置go语言环境
查看>>
机器学习好网站
查看>>
python 中的 sys , os 模块用法总结
查看>>
解题:国家集训队 Middle
查看>>
响应者链
查看>>
指针从函数内部带回返回值
查看>>
在使用webView播放flash或视频文件时无法关闭声音的问题
查看>>
redhat 7 源码安装 mysql5.5.49
查看>>