struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nils-Helge Garli Hegvik" <nil...@gmail.com>
Subject Re: Unit Testing Advice
Date Thu, 06 Nov 2008 13:05:09 GMT
The complexity of the test setup often reflects how much of the
framework itself you involve in your tests. Usually, I try to avoid
mocking the context and http objects by implementing the *Aware
interfaces and simply injecting simple Map objects, testing the action
in isolation. I realize that this is not always possible though...

Nils-H

On Thu, Nov 6, 2008 at 1:53 PM, Gundersen, Richard
<Richard.Gundersen@london-scottish.com> wrote:
> This is what I have so far. It works but I would appreciate a little
> peer review (particularly regarding how I set up my session and the
> logged in user)
>
> Thanks!
>
> ************************************************
>
> @Resource
> private CardPaymentAction cardPaymentAction;
>
>    ActionContext actionContext;
>    ServletActionContext servletActionContext;
>    private HttpServletRequest request;
>    private HttpServletResponse response;
>    private MockServletContext servletContext;
>
>        public CardPaymentActionTest() {}
>
>        @Test
>        public void testPayment() {
>                setupContext();
>
>                // Mastercard payment which requires authentication
>                CustomerPaymentDetails details = new
> CustomerPaymentDetails();
>                details.setAccountNumber("955784322");
>
>                cardPaymentAction.setCustomerPaymentDetails(details);
>                String result = cardPaymentAction.makePayment();
>
> assertTrue(BaseAction.Results.ACS_HANDLER.equals(result));
>        }
>
>        /**
>         * Setup the context (request, session etc) for our action tests
>         * (Move to setUp() when I figure out why it's not being
> executed)
>         */
>        private void setupContext() {
>        Map extraContext = new HashMap();
>
>        request = new MockHttpServletRequest();
>        response = new MockHttpServletResponse();
>        servletContext = new MockServletContext();
>        extraContext.put(HTTP_REQUEST, request);
>        extraContext.put(HTTP_RESPONSE, response);
>        extraContext.put(SERVLET_CONTEXT, servletContext);
>        Map session = new
> org.apache.struts2.dispatcher.SessionMap(request);
>        session.put("profile", createCustomer());  // fake a logged in
> user
>        extraContext.put("session", session);
>
>        actionContext = new ActionContext(extraContext);
>        ServletActionContext.setContext(actionContext);
>        }
>
> As a responsible corporate citizen, London Scottish Bank plc asks you to consider the
environment before printing this email.
>
> *** Disclaimer ***
>
> This electronic communication is confidential and for the exclusive use of the addressee.
It may contain private and confidential information. The information, attachments and opinions
contained in this E-mail are those of its author only and do not necessarily represent those
of London Scottish Bank PLC or any other members of the London Scottish Group.
>
> If you are not the intended addressee, you are prohibited from any disclosure, distribution
or further copying or use of this communication or the information in it or taking any action
in reliance on it. If you have received this communication in error please notify the Information
Security Manager at ISM@London-Scottish.com as soon as possible and delete the message from
all places in your computer where it is stored.
>
> We utilise virus scanning software but we cannot guarantee the security of electronic
communications and you are advised to check any attachments for viruses. We do not accept
liability for any loss resulting from any corruption or alteration of data or importation
of any virus as a result of receiving this electronic communication.
>
> Replies to this E-mail may be monitored for operational or business reasons. London Scottish
Bank PLC is authorised and regulated by the Financial Services Authority.
>
>
> London Scottish Bank plc, Registered Office: 201 Deansgate, Manchester M3 3NW Registered
Number 973008 England.
>
> Subsidiary Companies:-
>
> London Scottish Finance Limited, Registered Office: 201 Deansgate, Manchester M3 3NW
Registered Number 233259 England.
>
> London Scottish Broking Limited, Registered Office: 201 Deansgate, Manchester M3 3NW
Registered Number 230110 England.
>
> Robinson Way & Company Limited, Registered Office: 201 Deansgate, Manchester M3 3NW
Registered Number 885896 England.
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message