????????????web??ù????У?????Action????????????????????????????????

1??Action?????????????????????????????????????????

2??Action?????????http??????????????????web??????????????????д?????????????

??д?????????Action??????????????????ο???????struts??mock??webwork??ActionProxyFactory?????????Action??????????????????????ActionProxyFactory?????????????дaction????????????????·????????????????????

???????ActionContext?????????

?????????????????????map??

????????Action??????????

???public abstract ActionProxy createActionProxy(String namespace?? String actionName?? Map extraContext) throws Exception ????action???????

????junit??????н??

assertEquals(testAction.login()????success??)

????????ο?:

public class TestActionTest extends BaseCaseTest{

private ActionProxy proxy = null;

private IVoucherService voucherService;

@Before

public void setUp() throws Exception {

IMocksControl control = EasyMock.createControl();

voucherService = control.createMock(IVoucherService.class);

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

params.put(??loginId??????test??);

params.put(??password??????111111??);

params.put(??voucherService???? voucherService);

Map extraContext = new HashMap();

extraContext.put(ActionContext.PARAMETERS??params);

try {

proxy = ActionProxyFactory.getFactory().createActionProxy(??/user???? ??testAction???? extraContext);

proxy.setExecuteResult(false);

assertEquals(proxy.execute()????success??);

} catch (Exception e) {

e.printStackTrace();

}

}

@Test

public void testLogin() {

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

assertEquals(testAction.login()????success??);

}

}


???????????action???????proxy.execute()???????????????????????actionContext???????С???? proxy.execute()?л???? invocation.invoke()????????????????action?????е????????????????е????????????