how about using a different DI configuration for testing?

On Sat, Nov 21, 2009 at 3:24 AM, Iwao AVE! <[email protected]> wrote:
> Hi Marcus,
>
> Here's how I did in my recent project.
> In a @BeforeMethod of my base test class, spring's application
> context is created with mocks and added to MockServletContext.
>
> @BeforeMethod
> public void setupSpringContext() {
>  GenericWebApplicationContext springContext =
>    new GenericWebApplicationContext();
>  context.setAttribute(
>    WebApplicationContext
>      .ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,
>    springContext);
>
>  yourService = mock(YourService.class);
>  prepareSpringBean("yourService", bureauService);
>  personService = mock(AnotherService.class);
>  anotherSpringBean("anotherService", personService);
>  scripService = mock(ScripService.class);
>  ...
> }
>
> protected void prepareSpringBean(String name, Object bean) {
>  GenericWebApplicationContext springContext =
>    (GenericWebApplicationContext)context
>      .getAttribute(WebApplicationContext
>        .ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
>  springContext.getBeanFactory()
>    .registerSingleton(name, bean);
> }
>
> --
> And in each test class, mocks are configured before creating a
> MockRoundtrip.
>
> @Test
> public void testSomething() throws Exception {
>  // define behavior of services used in the test.
>  when(yourService.doServiceMethod())
>    .thenReturn(x);
>
>  trip = new MockRoundtrip(context,
>    OneOfYourActionBean.class);
>  // add parameters
>  trip.execute();
>
>  // assertions
> }
>
> --
> It's a little bit annoying that I have to prepare all the spring
> beans manually.
> If you find a easier way to do this, please let me know.
>
> Hope this helps,
> Iwao
>
>
> on 09/11/21 6:19 M.C.S. said the following:
>> Hi all,
>>
>> until now I used MockRoundtrip for testing my ActionBeans. This went
>> fine although my beans usually had some Spring-injected services. But as
>> long as they were valid Spring beans, every worked fine.
>>
>> Now while developing, I don't always have a concrete implementation of
>> the services that I am planning to be injected in the ActionBeans, so I
>> want the bean use a stub (created by Mockito) instead of a real class.
>> But that seems to be a problem: I see no way to get the stub in the
>> ActionBean because it is created on trip.execute().
>>
>> Any idea how I can use my stub in the ActionBean when using MockRoundtrip?
>>
>> Kind regards,
>> Marcus
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Stripes-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-users
>



-- 
Richard Hauswald
Blog: http://tnfstacc.blogspot.com/
LinkedIn: http://www.linkedin.com/in/richardhauswald
Xing: http://www.xing.com/profile/Richard_Hauswald

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users

Reply via email to