You can use Tapestry's built-in testing facilities. Don't mock the service, but just render you pages. Please read here:
http://tapestry.apache.org/unit-testing-pages-or-components.html 2010/12/6 Kiss Izolda <izo...@freemail.hu> > Dear Tapestry Users, > > we started to use TDD (Test Driven Development) with Tapestry 5.2 > in order to observe the rules of TDD we need to mock the following services > as well:-org.slf4j.Logger > -org.apache.tapestry5.ioc.Messages > the @ForComponents annotation had no effect in case of this 2 services > is there any way to mock them, to check their invocations? > thanks in advance > Izolda ps: some part of the code @RunWith(JMock.class) > public class MyPageTest extends AbstractTest { > @ForComponents > private Logger logger; > @ForComponents > private Messages messages; > private Mockery context = new JUnit4Mockery(); > > public void doSetUp() { > logger = context.mock(Logger.class); > messages = context.mock(Messages.class); > } > > @Test > public void testUserLoggedIn() { > // TEST FIXTURE > context.checking(new Expectations() { > { > oneOf(logger).debug("user logged in"); > oneOf(messages).format("welcome", "Black Smith"); > will(returnValue("Hello Black Smith!")); > } > }); > // Excercise sut > Document document = tester.renderPage("MyPage"); > // TEST ASSERT > assertNotNull(document); > assertSpan("spamWelcome", "Hello Black Smith!", document); > } java.lang.AssertionError: not all expectations were satisfied > expectations: > expected once, never invoked: logger.debug("user logged in"); returns a > default value > expected once, never invoked: messages.format("welcome", ["Black Smith"]); > returns "Hello Black Smith!" -- Best regards, Igor Drobiazko http://tapestry5.de