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
