- 浏览: 145170 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhongfenglin:
...
应聘时最漂亮的回答! 留着 早晚用的上 -
叶枫青:
请问这path设定的具体意思是?可否详细介绍下,谢……(粗略估 ...
J2EE项目从myeclipse中转换到eclipse中 -
starboyss:
...
SpringMVC中model,modelMap.request,session取值顺序 -
xiaomaha:
ejb3.0 webservice如何处理懒加载?没有类似we ...
最近一些J2EE bug总结 -
muqingren:
...
SpringMVC中model,modelMap.request,session取值顺序
这是我最近写的测试类对应的方法的测试代码其下面,请大家提一些建议,看哪里写的不周到,谢谢,
PositionController postController; Controller对象
第一个方法:
public String allPositions(HttpServletRequest request, ModelMap model) {
TableFacade tableFacade = TableFacadeFactory.createSpringTableFacade("allPositionsTable", request);
tableFacade.setMaxRows(10);
Limit limit = tableFacade.getLimit();
FilterSet filterSet = limit.getFilterSet();
int totalRows = projectService.getTotalRowCountForPositions(filterSet);
tableFacade.setTotalRows(totalRows);
SortSet sortSet = limit.getSortSet();
int rowStart = limit.getRowSelect() == null? 0 : limit.getRowSelect().getRowStart();
int rowEnd = limit.getRowSelect() == null? 10 : limit.getRowSelect().getRowEnd();
List<Position> positions = projectService.getPositions(filterSet, sortSet, rowStart, rowEnd);
model.addAttribute("positions", positions);
model.addAttribute("limit", limit);
return "/core/positions_table";
}
它对应的测试程序如下:
@Test
public void testAllPositions(){
String view = postController.allPositions(request, model);
Limit limit = (Limit)model.get("limit");
List<Position> positions = (List<Position>)model.get("positions");
Assert.assertNotNull(model.get("positions"));
Assert.assertEquals(10, positions.size());
Assert.assertNotNull(model.get("limit"));
Assert.assertEquals(0, limit.getRowSelect().getRowStart());
Assert.assertEquals(10, limit.getRowSelect().getRowEnd());
Assert.assertTrue(view.contains("/core/positions_table"));
}
第二个方法:
public String getAllPosition(HttpServletRequest request,
HttpServletResponse response,
ModelMap model) {
List<Position> positions = this.positionService.getAllPositions();
//define the number of max rows per page for jmesa when the result is empty
Integer maxRows = 10;
if (CollectionUtils.isNotEmpty(positions)) {
maxRows = positions.size();
}
model.addAttribute("count", maxRows);
request.getSession().setAttribute("positions",positions);
return "/crt/position_table";
}
它对应的测试程序如下:
@Test
public void testGetAllPosition(){
String view = postController.getAllPosition(request, response, model);
List<Position> positions = (List<Position>)request.getSession().getAttribute("positions");
int maxRow = (Integer)model.get("count");
Assert.assertNotNull(positions);
Assert.assertEquals(maxRow, positions.size());
Assert.assertTrue(view.contains("/crt/position_table"));
}
第三个方法:
public void getBindPositionRolesInAllRoles(Integer positionId, HttpServletRequest request, HttpServletResponse response, ModelMap model) {
Map<String, List<CurrentRoleObject>> groupRoles = new HashMap<String, List<CurrentRoleObject>>();
try {
groupRoles = positionService.getBindPositionRoleInAllRole(positionId);
} catch (Exception e) {
MessageUtils.outputJSONResult("occurError", response);
return;
}
MessageUtils.outputJSONResult(JSONObject.fromObject(groupRoles).toString(), response);
}
它对应的测试程序如下:
@Test
public void testGetBindPositionRolesInAllRoles(){
postController.getBindPositionRolesInAllRoles(1, request, response, model);
try {
Assert.assertEquals("utf-8", response.getCharacterEncoding());
Assert.assertNotNull(response.getContentAsString());
//just the content whether is json format
boolean flag = false;
try{
JSONObject.fromObject(JSONObject.fromObject(response.getContentAsString()));
flag = true;
}catch (Exception e){
flag = false;
}
Assert.assertEquals(true, flag);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
工具类MessageUtils的方法:
public static void outputJSONResult(String result, HttpServletResponse response) {
try {
response.setHeader("ContentType", "text/json");
response.setCharacterEncoding("utf-8");
PrintWriter pw = response.getWriter();
pw.write(result);
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
PositionController postController; Controller对象
第一个方法:
public String allPositions(HttpServletRequest request, ModelMap model) {
TableFacade tableFacade = TableFacadeFactory.createSpringTableFacade("allPositionsTable", request);
tableFacade.setMaxRows(10);
Limit limit = tableFacade.getLimit();
FilterSet filterSet = limit.getFilterSet();
int totalRows = projectService.getTotalRowCountForPositions(filterSet);
tableFacade.setTotalRows(totalRows);
SortSet sortSet = limit.getSortSet();
int rowStart = limit.getRowSelect() == null? 0 : limit.getRowSelect().getRowStart();
int rowEnd = limit.getRowSelect() == null? 10 : limit.getRowSelect().getRowEnd();
List<Position> positions = projectService.getPositions(filterSet, sortSet, rowStart, rowEnd);
model.addAttribute("positions", positions);
model.addAttribute("limit", limit);
return "/core/positions_table";
}
它对应的测试程序如下:
@Test
public void testAllPositions(){
String view = postController.allPositions(request, model);
Limit limit = (Limit)model.get("limit");
List<Position> positions = (List<Position>)model.get("positions");
Assert.assertNotNull(model.get("positions"));
Assert.assertEquals(10, positions.size());
Assert.assertNotNull(model.get("limit"));
Assert.assertEquals(0, limit.getRowSelect().getRowStart());
Assert.assertEquals(10, limit.getRowSelect().getRowEnd());
Assert.assertTrue(view.contains("/core/positions_table"));
}
第二个方法:
public String getAllPosition(HttpServletRequest request,
HttpServletResponse response,
ModelMap model) {
List<Position> positions = this.positionService.getAllPositions();
//define the number of max rows per page for jmesa when the result is empty
Integer maxRows = 10;
if (CollectionUtils.isNotEmpty(positions)) {
maxRows = positions.size();
}
model.addAttribute("count", maxRows);
request.getSession().setAttribute("positions",positions);
return "/crt/position_table";
}
它对应的测试程序如下:
@Test
public void testGetAllPosition(){
String view = postController.getAllPosition(request, response, model);
List<Position> positions = (List<Position>)request.getSession().getAttribute("positions");
int maxRow = (Integer)model.get("count");
Assert.assertNotNull(positions);
Assert.assertEquals(maxRow, positions.size());
Assert.assertTrue(view.contains("/crt/position_table"));
}
第三个方法:
public void getBindPositionRolesInAllRoles(Integer positionId, HttpServletRequest request, HttpServletResponse response, ModelMap model) {
Map<String, List<CurrentRoleObject>> groupRoles = new HashMap<String, List<CurrentRoleObject>>();
try {
groupRoles = positionService.getBindPositionRoleInAllRole(positionId);
} catch (Exception e) {
MessageUtils.outputJSONResult("occurError", response);
return;
}
MessageUtils.outputJSONResult(JSONObject.fromObject(groupRoles).toString(), response);
}
它对应的测试程序如下:
@Test
public void testGetBindPositionRolesInAllRoles(){
postController.getBindPositionRolesInAllRoles(1, request, response, model);
try {
Assert.assertEquals("utf-8", response.getCharacterEncoding());
Assert.assertNotNull(response.getContentAsString());
//just the content whether is json format
boolean flag = false;
try{
JSONObject.fromObject(JSONObject.fromObject(response.getContentAsString()));
flag = true;
}catch (Exception e){
flag = false;
}
Assert.assertEquals(true, flag);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
工具类MessageUtils的方法:
public static void outputJSONResult(String result, HttpServletResponse response) {
try {
response.setHeader("ContentType", "text/json");
response.setCharacterEncoding("utf-8");
PrintWriter pw = response.getWriter();
pw.write(result);
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
发表评论
-
maven中jar包冲突异常
2016-10-09 13:18 0ava.lang.NoSuchMethodError: org ... -
安装redis2.8时必须安装c/c++
2014-08-20 17:39 0安装C/C++的编译组件(非必须) apt-get insta ... -
java中split方法使用总结
2013-10-17 23:56 0韩版2013秋装新款女T恤纯色长袖长款女T恤DN1116叁柒【 ... -
java.lang.OutOfMemoryError: Java heap space 的解决
2013-07-15 09:22 0java.lang.OutOfMemoryError: Jav ... -
通过url抓取第三方的内容
2012-08-14 11:06 1018大家看到标题都会想到用HttpURLConnection ... -
freemarker的web项目学习
2012-07-29 21:04 0http://duooluu.iteye.com/blog/2 ... -
SpringMVC中输出json格式数据,以及@ResponseBody的问题
2012-07-29 20:19 0转[url] http://blog.csdn.net/a ... -
java字符串应用之IP地址转换成整数 转
2012-07-28 12:35 1309转 http://blog.csdn.net/xxxxxx ... -
获取访问站点用户的IP地址
2012-07-28 12:27 1020转http://lidaoping12345.iteye.co ... -
递归总结
2012-04-05 18:33 01.递归获取前几条数据,则要用返回值的方式才可以,否则并行的节 ... -
java处理日期格式大全Date format SimpleDateFormat资料参考
2012-04-05 18:32 5911参考 http://blog.csdn.net/ ... -
Failed to create the Java Virtual Machine
2012-04-05 18:25 1096来自 http://apps.hi.baidu.com/sha ... -
eclipse打jar包
2012-02-03 18:14 1149参考http://apps.hi.baidu.com/shar ... -
面试题
2011-09-15 22:26 0微软十五道面试题 1、 ... -
JRedis学习
2011-08-19 18:19 0使用jredis连接redis服务器端,主要有两种方式,参考代 ... -
学习技术总结
2011-08-19 10:53 01.web页面的加载顺序,jsp,js,css 2.selec ... -
键盘数字对应的ASCII码和keycode码
2011-07-07 14:27 3874转载http://hi.baidu.com/dongtianx ... -
dom4j读取xml
2011-03-24 18:23 928转载http://shaqiang32.iteye.com/b ... -
最近一些J2EE bug总结
2011-02-25 13:33 2307JavaEE项目中bug总结 一. java.lang.N ... -
java基本类型变量和对象学习总结
2011-02-18 14:58 0八种基本类型变量,字符类型char,布尔类型boolea ...
相关推荐
在Spring MVC框架中,单元测试是确保代码质量的重要步骤,特别是在控制器层(Controller)。这篇博客主要探讨了如何使用JUnit进行Spring MVC Controller的单元测试。在实际开发中,单元测试可以帮助我们尽早发现潜在...
在"Controller项目"中,我们可以通过编写基准测试(如使用JMeter或 Gatling)来具体比较原生Servlet和Spring Controller在处理相同请求时的性能。这有助于了解在特定场景下哪种方式更适合。 总的来说,原生Servlet...
总的来说,Spring Boot的Controller层单元测试提供了一种有效的方式,让我们能够在不运行整个应用程序的情况下,验证Controller的逻辑。它帮助我们发现和修复潜在的问题,提高代码质量和可靠性。通过精心设计和执行...
Controller层应当尽可能轻量,主要负责处理HTTP请求和调用业务逻辑层(BLL)或数据访问层(DAO)。如果Controller间有共享逻辑,可以考虑提取至公共服务或抽象类。通过解耦和模块化设计,可以避免直接的Controller间...
对于处理HTTP请求的Controller层,Spring Boot提供了`@WebMvcTest`注解,它将启动一个简化版的Spring MVC上下文,只包含Web相关的bean。结合`@MockMvc`,我们可以模拟HTTP请求并验证Controller的响应。 五、Service...
在Java Web开发中,Servlet和Spring MVC(主要通过Controller)是两种常见的请求处理机制。本文将深入探讨原生Servlet与Spring Controller在性能方面的差异,并基于一个名为"AbTest"的Servlet项目源码进行分析。 ...
本测试着重关注Spring MVC架构中的三层:表现层(Presentation Layer)、业务层(Business Logic Layer)和服务数据访问层(Service and Data Access Layer)。下面我们将详细探讨如何使用JUnit进行针对这三层的测试...
"springaop拦截controller日志"这个主题旨在讲解如何使用Spring AOP来拦截Controller层的方法调用,并在方法执行前后记录相关日志。 首先,了解Spring AOP的基本概念。AOP是一种编程范式,它允许程序员定义“切面”...
Spring MVC 提供了对单元测试的良好支持,使得我们可以方便地测试控制器、服务层以及数据访问层。 在Spring MVC中进行单元测试,我们通常会用到以下关键技术和工具: 1. **JUnit**:JUnit是Java编程语言中最常用的...
要对 SpringBoot Controller 层进行单元测试,我们需要使用 JUnit 框架和 Spring Boot 提供的测试注解。首先,我们需要添加依赖项,包括 junit-jupiter-api、junit-jupiter-engine 和 spring-boot-starter-test。...
`@AutoConfigureMockMvc`则帮助你配置Mock MVC,方便测试Controller层。 为了确保业务层的正确性,我们还需要关注数据访问对象(DAO)的测试。Spring Data JPA提供了`@Query`注解,允许自定义SQL或HQL查询,而在...
在Spring中,我们可以使用`@RunWith(SpringRunner.class)`和`@SpringBootTest`注解来启动一个完整的Spring应用上下文,以便测试Controller层。例如,对于一个名为`MyController`的Controller,我们可以创建如下测试...
每个模块都有明确的职责,Service层则主要负责处理业务逻辑,它依赖于Repository层与数据交互,并为Controller层提供服务。 进行Service层的单元测试,我们主要关注以下几个方面: 1. **测试环境配置**:在IDEA中...
本文将详细介绍如何使用Spring MVC的Mock测试机制来直接测试Controller层代码,以便更好地隔离和验证控制器的行为。 **什么是Mock测试?** Mock测试是一种软件测试技术,它允许在不依赖真实环境或第三方组件的情况...
对于Controller层的测试,Spring Boot提供了`MockMvc`工具,它可以模拟MVC环境,允许你发送HTTP请求到Controller并检查响应。例如: ```java @Autowired private MockMvc mockMvc; @Test public void test...
11. **Controller层** 创建Controller类,处理HTTP请求,调用Service层的方法,返回响应数据。在Controller中使用@Autowired注解注入Service实例。 12. **测试** 使用JUnit进行单元测试,测试Service和DAO的功能...
1. 表现层(Presentation Layer):通常由Spring MVC的Controller组件负责。Controller接收HTTP请求,处理用户交互,调用业务逻辑,然后将结果转发到视图进行渲染。Controller通过@RequestMapping注解与URL路径绑定...
这些文件可能包括Spring的配置文件、Spring MVC的Controller类、Service层的接口和实现,以及与MyBatis相关的Mapper接口和XML配置。 总的来说,Spring、MyBatis和Maven的组合提供了一种强大的开发模式,使得我们...
1. **源代码**:包含了用Java编写的Spring应用程序,可能有服务层(Service)、持久层(Repository)、控制层(Controller)等。 2. **配置文件**:如`applicationContext.xml`或`@Configuration`注解的Java类,用于...
Spring Test提供了`@WebMvcTest`注解,用于启动一个只包含Web层组件的ApplicationContext,可以隔离地测试Controller。使用`MockMvc`类,我们可以模拟HTTP请求,比如`mockMvc.perform(get("/api"))`,并验证响应结果...