A simple JUnit test for when you just can’t remember the Mule JUnit testing syntax 😉
Mule flow
A Mule flow that takes a username as input and concatenates it with a “Hello”. The request is done by a GET call:

Flow code
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"> <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"> <set-payload value="#['Hello '+message.inboundProperties.'http.query.params'.username]" doc:name="Set Payload">
Java test code:
import org.junit.Test;
import org.mule.DefaultMuleMessage;
import org.mule.api.MuleMessage;
import org.mule.api.client.MuleClient;
import org.mule.tck.junit4.FunctionalTestCase;
import junit.framework.Assert;
public class MyTests extends FunctionalTestCase {
@Test
public void testMyFlow() throws Exception {
// Get the Mule Context
MuleClient muleClient = muleContext.getClient();
// Create an empty test Mule message
DefaultMuleMessage message =
new DefaultMuleMessage(null, muleContext);
// Make a call to the tested web service
MuleMessage responseMessage = muleClient.send(
"http://localhost:8081/test?username=Niklas",
message
);
// Get response as a string
String responsePayload = responseMessage.getPayloadAsString();
// Assert response
Assert.assertEquals("Hello Niklas", responsePayload);
}
@Override
protected String[] getConfigFiles() {
// Path to the Mule configuration file that is being tested
return new String[]{"src/main/app/helloworld.xml"};
}
}
Tested on OSX 10.15.7, Mule 3.9.4, and JUnit 4.13