I don't know how to do this in spring, but in guice you can create a so called provider that creates a instance of the interface. this instance can also be mock created by Mockito. Maybe its called factory method or factory in spring.
On Sat, Nov 21, 2009 at 12:05 PM, Iwao AVE! <[email protected]> wrote: > Doesn't it require a concrete implementation of the service interface? > > on 09/11/21 16:31 Richard Hauswald said the following: >> 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
