聚合全网技术文章,根据你的阅读喜好进行个性推荐
开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>
以前一直不做单元测试,现在在重构自己以前写的代码,发现不做单元测试心里老是不踏实.
但是感觉struts2不好做单元测试,设计到页面上很多东西,大家怎么做struts2的单元测试呢?求分享一下
我也想知道
基于WEB的单元测试 主要是要用到一些servelt api,可以用模拟测试,有很多开源的框架 比如Jmock,让框架去继承servlet api对象。还有一种方法 我没试过 用第三方的一个容器 用代码来启动服务器,然后用代码来访问http, apache的cactos可以试试。
既然是单元就要看action调用是否正确,返回的都是字符串。
其次看servlet调用
cactus 听说过,但是没具体应用。
其实主要的问题是ssh框架中,action会调用一大堆的manager层代码,manager层又调用dao,导致写单元测试的时候感觉很棘手
恩,楼上说的是一方面。
但是既然是单元,那就要具体到方法调用。
三层,分别来看,有些测试是重复的,而且浪费时间的。
单元测试更关注底层代码实现吧。个人理解。
单元测试和分层有什么关系,你调用就可以了,主要问题还是单元测试如何取到servlet api。
好像只要调一个struts的接口就可以了
我把一个片段粘给你,你稍微看一下
xxAction addAction = new xxAction();
Map<String, Object> session = new HashMap<String, Object>();
addAction.setSession(session);
IMocksControl control = EasyMock.createControl();
HttpServletRequest request = control.createMock(HttpServletRequest.class);
EasyMock.expect(request.getRemoteAddr()).andReturn("127.0.0.1").anyTimes();
control.replay();
addAction.setServletRequest(request);
Map<String, String> app = new HashMap<String, String>();
app.put("name", "test");
app.put("code", "test");
addAction.setApp(app);
addAction.execute();
struts2 只是玩过,几个项目用的是struts1 和 SpringMVC ,感觉SpringMVC的单元测试最方便。
我也想知道
基于WEB的单元测试 主要是要用到一些servelt api,可以用模拟测试,有很多开源的框架 比如Jmock,让框架去继承servlet api对象。还有一种方法 我没试过 用第三方的一个容器 用代码来启动服务器,然后用代码来访问http, apache的cactos可以试试。
既然是单元就要看action调用是否正确,返回的都是字符串。
其次看servlet调用
cactus 听说过,但是没具体应用。
其实主要的问题是ssh框架中,action会调用一大堆的manager层代码,manager层又调用dao,导致写单元测试的时候感觉很棘手
恩,楼上说的是一方面。
但是既然是单元,那就要具体到方法调用。
三层,分别来看,有些测试是重复的,而且浪费时间的。
单元测试更关注底层代码实现吧。个人理解。
单元测试和分层有什么关系,你调用就可以了,主要问题还是单元测试如何取到servlet api。
好像只要调一个struts的接口就可以了
我把一个片段粘给你,你稍微看一下
xxAction addAction = new xxAction();
Map<String, Object> session = new HashMap<String, Object>();
addAction.setSession(session);
IMocksControl control = EasyMock.createControl();
HttpServletRequest request = control.createMock(HttpServletRequest.class);
EasyMock.expect(request.getRemoteAddr()).andReturn("127.0.0.1").anyTimes();
control.replay();
addAction.setServletRequest(request);
Map<String, String> app = new HashMap<String, String>();
app.put("name", "test");
app.put("code", "test");
addAction.setApp(app);
addAction.execute();
struts2 只是玩过,几个项目用的是struts1 和 SpringMVC ,感觉SpringMVC的单元测试最方便。