??    ????????????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?????е????????????????е????????????