Chapter 13. Testing Support in SwitchYard
SwitchYard uses JUnit, which is a unit testing framework for Java. SwitchYard provides comprehensive unit test support for testing your applications. There are three primary elements to test support in SwitchYard:
SwitchYardRunner
SwitchYardTestKit
SwitchYardTestCaseConfig
13.1. SwitchYardRunner Class
The SwitchYardRunner Class is a JUnit test Runner class that takes care of bootstrapping an embedded SwitchYard runtime and deploying a SwitchYard application for the test instance.
In order to take advantage of the test support in SwitchYard, ensure that your unit test is annotated with the
SwitchYardRunner
JUnit test Runner class. The SwitchYardRunner
creates and starts an embedded runtime for each test method. After the embedded runtime starts, the project containing the test is packaged as a SwitchYard application and deployed to it. An instance of the SwitchYardTestKit
class is injected into the test when a property of type SwitchYardTestKit is declared in the test. This instance represents the runtime state of the deployed SwitchYard test application.
@RunWith(SwitchYardRunner.class) public class MyServiceTest { private SwitchYardTestKit testKit; @Test public void testOperation() { MyTestServiceHandler service = new MyTestServiceHandler(); // register the service... testKit.registerInOutService("MyService", service); // invoke the service and capture the response... Message response = newInvoker("MyService") .sendInOut("<create>A1234</create>"); // test the response content by doing an XML comparison with a // file resource on the classpath... testKit.compareXMLToResource(response.getContent(String.class), "/myservice/expected-create-response.xml"); } private class MyTestServiceHandler implements ExchangeHandler { // implement methods.... } }The
SwitchYardTestKit
class provides a set of utility methods for performing all sorts of deployment configuration and test operations.