Show Table of Contents
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:
SwitchYardRunnerSwitchYardTestKitSwitchYardTestCaseConfig
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.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.