怎么编写action的单元测试

 时间:2026-02-12 18:09:24

1、基于struts的mock和webwork的ActionProxyFactory都可以进行action的单元测试。

比较建议用ActionProxyFactory做单元测试

怎么编写action的单元测试

2、写action单元测试非常简单,分三步就可以完成单元测试。

第一步:

设置actionContext上下文参数

 将表单传递的请求参数添加到map中

详细用例参考:

public class TestActionTest extends BaseCaseTest{

private ActionProxy proxy = null;

private IVoucherService voucherService;

怎么编写action的单元测试

3、第二步

创建action动态代理对象

    通过public abstract ActionProxy createActionProxy(String namespace, String actionName, Map extraContext) throws Exception 创建action代理对象。

@Before

public void setUp() throws Exception {

IMocksControl control = EasyMock.createControl();

voucherService = control.createMock(IVoucherService.class);

Map<String, Object> params = new HashMap<String, Object>();

怎么编写action的单元测试

4、第三步:

junit断言执行结果

  assertEquals(testAction.login(),"success")

params.put(”loginId”,”test”);

params.put(”password”,”111111″);

params.put(”voucherService”, voucherService);

Map extraContext = new HashMap();

extraContext.put(ActionContext.PARAMETERS,params);

怎么编写action的单元测试

5、创建代理action一定要执行proxy.execute()方法,否则参数不能够增加到actionContext上下文中。

try {

proxy = ActionProxyFactory.getFactory().createActionProxy(”/user”, “testAction”, extraContext);

proxy.setExecuteResult(false);

assertEquals(proxy.execute(),”success”);

} catch (Exception e) {

e.printStackTrace();

怎么编写action的单元测试

6、proxy.execute()中会执行 invocation.invoke()核心方法,遍历执行action中所有的拦截器,包括其中的参数拦截器。

@Test

public void testLogin() {

TestAction testAction = (TestAction) proxy.getAction();

assertEquals(testAction.login(),”success”);

怎么编写action的单元测试

  • 关卡3-2任务攻略
  • DOTA2如何招募战友
  • 华硕 N56VZ笔记本电脑说明书:[1]
  • 崩坏学园2使魔介绍篇(二十五)克劳迪娅
  • 300英雄佐罗技能介绍
  • 热门搜索
    泰国曼谷旅游攻略 浙江安吉旅游 春秋旅游团 去海南旅游必备物品 正规旅游网站 辽宁省旅游景点 中国旅游报电子版 浙江旅游地图 迪拜旅游报价 西溪湿地旅游攻略