In my experience, using of mocking frameworks for testing of Async calls is not so good and tests are becoming un-readable at some point of time. In our app we are using Command Pattern to send different requests (Action/Response) and here is our helper class that we are using for testing:
public class FakeRpcService implements RpcServiceAsync { public Action<?> lastAction; public AsyncCallback<?> lastCallback; public <T extends Response> void execute(Action<T> action, AsyncCallback<T> async) { lastAction = action; lastCallback = async; } public <T> T lastAction() { return (T) lastAction; } public void responsesWith(Response response) { // SMELL private members of simple object are referencing template members? ((AsyncCallback<Response>) lastCallback).onSuccess(response); } public void failsWith(RuntimeException e) { ((AsyncCallback<Response>) lastCallback).onFailure(e); } } so our tests now are looking like: @Test public void exportSelectedInvoices() { List<InvoiceDto> invoices = Lists.newArrayList(createInvoice("1",PaymentType.CASH)); // filter button was clicked presenter.onReportRequested(); service.responsesWith(new GetInvoicesPeriodReportResponse(invoices)); presenter.onExportSelectedInvoices(new HashSet<InvoiceDto>()); GenerateAjurExportAction action = service.lastAction(); assertThat("the one selected invoice was not sent for export?",action.getInvoices(), is(equalTo(invoices))); service.responsesWith(new GenerateAjurExportResponse("test test")); assertThat("export response was not displayed?",display.exportResponse,is(equalTo("test test"))); } Hope this will help you figure out what's the best choice for you. -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/OTxCnyHee14J. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.