• Home
  • RSS Feed
  • Log in

Jeroen van Wilgenburg

Unit testing a Stripes ActionBean wired with Spring Beans
Posted by Jeroen van Wilgenburg around lunchtime: December 16th, 2008

Last friday I spent quite some time to figure out how to initialize my Spring beans when unit-testing some Stripes ActionBeans. There wasn’t any Spring context at all and you really need that for integration testing.

How to set up a unit test with Stripes is explained pretty good here.
I applied approach 2, run the tests within a mock container.

My unit test is extending AbstractTransactionalJUnit4SpringContextTests and is annotated with @RunWith(SpringJUnit4ClassRunner.class) and @ContextConfiguration(locations = { … })

The code I’m about to show should be put after initialzing the MockServletContext. I recommend using a method annotated with @Before where you do the initialization (I called mine setUpMockServletContext)
Since the unit tests run before the Spring config files are put in the WEB-INF directory, you have to tell Stripes where to find the configuration files:

context.addInitParameter("contextConfigLocation",
"classpath:dataSourceContext.xml\nclasspath:daoContext.xml\nclasspath:applicationContext.xml");

Stripes isn’t smart enough (yet?) to read the @ContextConfiguration annotation, but this file will probably included somewhere in a parent-unit test, so it isn’t a big deal.

The final step is telling Spring to initialize its context with your MockServletContext (note that this is a Stripes MockServletContext, not the one used by Spring!):

ContextLoaderListener springContextLoader = new ContextLoaderListener();
springContextLoader.contextInitialized(new ServletContextEvent(context));

That’s all there is to it. Let’s hope google picks up this blog and other people can handle this tiny problem quicker than I did.

Sources

* Unit testing with Spring
* Unit testing Stripes
* Using Spring with Stripes
* Stripes mailing list

Share

Tags: stripes spring unit test actionbean
Filed under Java, Testing | No Comments »



No Responses to “Unit testing a Stripes ActionBean wired with Spring Beans”



Leave a Reply

Click here to cancel reply.


Xebia Sites

  • Xebia Corporate
  • Xebia France
  • Xebia India
  • Xebia Sweden

Categories

  • Java (311)
  • Agile (181)
  • General (136)
  • Scrum (67)
  • Architecture (64)
  • Testing (59)
  • Performance (46)
  • Middleware (56)
    • Deployment (38)
  • Xebia Labs (39)
  • SOA (31)
  • Podcast (31)
  • Project Management (28)
  • Tools (26)
  • Uncategorized (20)
  • lean architecture (20)
  • Quality Assurance (17)
  • Articles (13)
  • Requirements Management (13)
  • Virtualization (19)

Tag Cloud

    JPA JPA implementation patterns product owner Java Lean Concurrency Control Xebia ACT Hibernate SOA Grails Ajax lean architectuur Eclipse Oracle Moving to India TDD Maven Javascript Agile Scrum Architecture Flex XML Frameworks agile architectuur Spring Scala Groovy lean architecture

Archives

  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
Avatars by Sterling Adventures