Dashboard & Unit Testing

Moby UnitTesting Panel

This panel allows you to both create unit test cases for a service or to test a services’ unit test obtained from the service provider.

In order to use this panel, you need to make sure that you have started up Dashboard.

Note: Dashboard is available as a JAVA webstart application!

Getting Started

First, select a service you wish to provide a test for from the service tree. It will populate the Service Input Data table on the left with the definition of data for the selected service.

selecting a service to test

The Moby Unit Test Cases subpanel on the bottom right of the main panel allows you to provide one or all of the following items:

  • a regular expression that matches the selected services’ output,
  • an XPATH expression, when applied to the selected services’ output returns some matching nodes,
  • or a sample service output that when compared, on a content basis, to the selected services’ output is an exact match.

How to create input data

There are two ways to prepare data for a service call:

  • using the Service Input Data table, or
  • having them already in an XML format expected by Biomoby services.

The table supports almost all possible data inputs a Biomoby service can ask for (except a collection of inputs).

Providing input to the service

The description how to enter data in the table is in a separate document (because the same table is used in a standalone client) docs/CreateInputClient.html (in your local jMoby directory), or from the jMoby site .

Here only shortly, what the table does:

It displays a full structure of a given data type and then it allows:

  • to enter ID (for any part),
  • to enter Namespace (for any part),
  • to enter value (for primitive types),
  • to add, clone and again remove the members that are related to their parents by a HAS relationship (HAS means that a parent can have zero, one or more of these members),
  • and to convert everything into XML representation.

An alternative is to check the box Take an input from this XML file, and to give a file name with input data. This is how you can create such a file in the first place:

  1. Select service, fill the Service Input Data.
  2. Check the box No real call, just show/echo input.Make sure that Show input as XML is checked.
  3. Click on Call service.
  4. Click on the Save icon in the bottom-left console.

Providing Unit Test Information

In the bottom right subpanel, Moby Unit Test Cases, there are 3 tabs.

The tabs are:

  • Regex Testertab,
  • theXPath Testertab, and
  • the Service Output XML Tester tab.

The moby unit testing subpanel

These tabs allow you to enter test case information for a particular service that is applied to the output of the service given the sample input entered in Service Input Data widget.

The Regex Tester Tab

This tab consists of 2 components:

  • a text box for entering a regular expression to test against service output and
  • a text area for viewing any matches when you hit the ‘Test Regular Expression’ button.

The regex testing tab

The XPATH Tester Tab

This tab consists of a single component. A text box for entering an XPATH expression to test against service output.

Once you are satisfied that you have a sufficient test case, you can see if the expression entered actually matches any nodes in the output XML by hitting the ‘Test XPATH Expression’ button.

If the expression entered matches the output XML, the button will turn green. If there are no matches, the button will turn red.

Testing with XPATH ... Success!

The Service Output Tester Tab

This tab allows you to enter the XML that you expect the service to output when called with our sample input.

You can choose to enter this XML by hand or to copy over service results from the Service Results window using the convenient ‘Copy’ button.

Once you are satisfied with the XML in the ‘Expected service output XML’ textarea you can compare it to the actual service output XML with the ‘Test’ button.

Service Output Tab

This test will compare the actual contents of the XML messages, ignoring XML element/attribute ordering and any whitespace.

Comparing output semantically

Any differences found will be shown to you in a pop up window.

Comparing output ... finding differences

Saving Unit Test Information

In order to save the unit testing information that you entered in this panel for the selected service, all that you have to do is click on the Save Your Unit Test button. This will prompt you for a place to save the test case information.

Save your unit test

Download Unit Test

Some service providers will have already provided unit test information for their services.

If you happen to select such a service, clicking on the Download Unit test button will fill in the test case information for the selected service.

You may then test the service (XPATH, REGEX) and/or compare its expected output to the actual service output.

Fetching unit tests from service providers