Please add this to http://cwiki.apache.org/WICKET/spring.html
On Tue, 2010-01-26 at 11:48 +0100, Jochen Mader wrote: > Just figured out how to do UnitTesting with Spring 3 and Wicket. > Spring 3 introduced a check to see if a given context was a > WebApplicationContext. That means ApplicationContextMock is not suitable for > testing (giving the infamous " No WebApplicationContext found: no > ContextLoaderListener registered?" message). > I simply extended the class and added WebApplicationContext interface. > > The following example shows how to get it going (I hope the code doesn't get > messed up): > > > public class TestHomePage extends TestCase { > > private WicketTester tester; > > > @Override > > public void setUp() { > > final WebApplicationContextMock appctx = new WebApplicationContextMock(); > > > final ServiceOfDoom mock = createMock(ServiceOfDoom.class); > > expect(mock.getIt()).andReturn("whups").anyTimes(); > > replay(mock); > > tester = new WicketTester(new WicketApplication()) { > > @Override > > public ServletContext newServletContext(String path) { > > MockServletContext servletContext = (MockServletContext) super > > .newServletContext(path); > > appctx.setServletContext(servletContext); > > appctx.putBean("scratchy", mock); > > servletContext > > .setAttribute( > > WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, > > appctx); > > return servletContext; > > } > > }; > > tester.getApplication().addComponentInstantiationListener( > > new SpringComponentInjector(tester.getApplication(), appctx, > > false)); > > } > > > public void testRenderMyPage() { > > // start and render the test page > > tester.startPage(HomePage.class); > > > // assert rendered page class > > tester.assertRenderedPage(HomePage.class); > > > // assert rendered label component > > tester > > .assertLabel("message", > > "whups"); > > } > > > private class WebApplicationContextMock extends ApplicationContextMock > > implements WebApplicationContext { > > private ServletContext servletContext; > > > public <T> T getBean(Class<T> requiredType) throws BeansException { > > // TODO Auto-generated method stub > > return null; > > } > > > public <A extends Annotation> A findAnnotationOnBean(String beanName, > > Class<A> annotationType) { > > // TODO Auto-generated method stub > > return null; > > } > > > public Map<String, Object> getBeansWithAnnotation( > > Class<? extends Annotation> annotationType) > > throws BeansException { > > // TODO Auto-generated method stub > > return null; > > } > > > public void setServletContext(ServletContext servletContext) { > > this.servletContext = servletContext; > > } > > > public ServletContext getServletContext() { > > return null; > > } > > > } > > } --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org