Chapter 8. Creating a new Apache Camel JUnit test case

Overview

A common way of testing routes is to use JUnit. The design time tooling includes a wizard that simplifies creating a JUnit test case for your routes. The wizard uses the endpoints you specify to generate the starting point code and configuration for the test.

Note

After you create the boilerplate JUnit test case, you need to modify it to add expectations and assertions specific to the route that you’ve created or modified, so the test is valid for the route.

Prerequisites

Before you create a new JUnit test case, you need to perform a preliminary task:

Deleting and existing JUnit test case

  1. In the Project Explorer view, expand the project’s root node to expose the <root_project>/src/test/java folder.
  2. Locate the JUnit test case file in the /src/test/java folder.

    Depending on which DSL the project is based on, the JUnit test case file is named BlueprintXmlTest.java or CamelContextXmlTest.java.

  3. Right-click the JUnit test case .java file to open the context menu, and then select Delete.

    The JUnit test case .java file disappears from the Project Explorer view.

    You can now create a new JUnit test case.

Creating and adding the src/test/java folder to the build path

  1. In the Project Explorer view, right-click the project’s root to open the context menu.
  2. Select NewFolder to open the Create a new folder resource wizard.
  3. In the wizard’s project tree pane, expand the project’s root node and select the src folder.

    Make sure <project_root>/src appears in the Enter or select the parent folder field.

  4. In Folder name, enter /test/java. This folder will store the new JUnit test case you create.
  5. Click Finish.

    In the Project Explorer view, the new src/test/java folder appears under the src/main/resources folder. You can verify that this folder is on the class path by opening its context menu and selecting Build Path. If Remove from Build Path is a menu option, you know the src/test/java folder is on the class path.

    You can now create a new JUnit test case.

Creating a JUnit test case

To create a new JUnit test case for your route:

  1. In the Project Explorer view, select the routing context .xml file in your project.
  2. Right-click it to open the context menu, and then select NewCamel Test Case to open the New Camel JUnit Test Case wizard, as shown in Figure 8.1, “New Camel JUnit Test Case wizard”.

    Figure 8.1. New Camel JUnit Test Case wizard

    Entry page of the New Camel JUnit Test Case wizard

    Alternatively, you can open the wizard by selecting FileNewOtherJBoss FuseCamel Test Case from the menu bar.

  3. In Source folder, accept the default location of the source code for the test case, or enter another location.

    You can click Browse button to search for a location.

  4. In Package, accept the default package name for the generated test code, or enter another package name.

    You can click Browse button to search for a package.

  5. In Camel XML file under test, accept the default pathname of the routing context file that contains the route you want to test, or enter another pathname.

    You can click Browse button to search for a context file.

  6. In Name, accept the default name for the generated test class, or enter another name.
  7. Select the method stubs you want to include in the generated code.
  8. If you want to include the default generated comments in the generated code, check the Generate comments box.
  9. Click Next button to open the Test Endpoints page. For example, Figure 8.2, “New Camel JUnit Test Case page” shows a route’s input and output file endpoints selected.

    Figure 8.2. New Camel JUnit Test Case page

    Example Test Endpoints page
  10. Under Available endpoints, select the endpoints you want to test. Click the checkbox next to any selected endpoint to deselect it.
  11. Click Finish button .

    Note

    If prompted, add JUnit to the build path.

The artifacts for the test are added to your project and appear in the Project Explorer view under src/test/java. The class implementing the test case opens in the Java editor.