Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Development Practice

Follow the same procedure as described in the Synapse-Services-Repository Developer Best Practices 

Use SafeHtml

Read this document on use of SafeHtml in GWT and adhere strictly to the contracts described. Apply true escaping methods to any user-generated value in the system.  

Testing

See the general Synapse testing philosophy on the Synapse-Services-Repository Developer Best Practices page.

Specifics For GWT Testing

  • Put all business logic into Presenters and make them JRE testable (aka JUnit). 
    • This means that Presenters can not deal with class instances that rely upon GWT.create(...) calls. For the rare case when this is necessary, create a GWTTestCase. Be aware that these tests take significant time to spin up.
    • The philosophy of our architecture and this testing technique is described here
  • To mock callbacks, such as with RPC services, use AsyncMockStubber's static methods. 

    // Example call onSuccess(..)
    AsyncMockStubber.callSuccessWith("Result Object").when(mockService).getSomething(eq("someInputParam"), any(AsyncCallback.class)); 
     
    // Example call onFailure(..)
    AsyncMockStubber.callFailureWith(new Throwable("error message")).when(mockService).getSomething(eq("someInputParam"), any(AsyncCallback.class));
  • No labels