package com.googlecode.gwt.test; import com.googlecode.gwt.test.client.MyObject; import com.googlecode.gwt.test.i18n.MyConstants; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Spy; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; @GwtModule("com.googlecode.gwt.test.GwtTestUtils") public class MockitoGwtTest extends GwtTestWithMockito { public static class MyBean { private final MyConstants contants; private final MyObject object; private final MyRemoteService remoteService; public MyBean(MyConstants contants, MyRemoteService remoteService, MyObject object) { this.contants = contants; this.remoteService = remoteService; this.object = object; } public String getMyField() { return object.getMyField(); } public String goodbye() { return contants.goodbye(); } public String myMethod(String param) { return remoteService.myMethod(param); } } @InjectMocks MyBean bean; @Mock MyConstants contants; @Spy MyObject object; @org.mockito.Mock MyRemoteService remoteService; @Test public void injectGwtMock() { // Given doReturn("mocked method call").when(remoteService).myMethod("testParam"); // When String myMethod = bean.myMethod("testParam"); // Then assertThat(myMethod).isEqualTo("mocked method call"); } @Test public void injectMockitoMock() { // Given doReturn("mocked bye !").when(contants).goodbye(); // When String goodbye = bean.goodbye(); // Then assertThat(goodbye).isEqualTo("mocked bye !"); } @Test public void injectSpy() { // Given object.setMyField("my field"); // When String myfield = bean.getMyField(); // Then assertThat(myfield).isEqualTo("my field"); verify(object).getMyField(); } }