The OpenSAML V2 software has reached its End of Life and is no longer supported. This documentation is available for historical purposes only.

OSTwoDevManJavaTesting

Testing Guide

OpenSAML 2, Java Edition, uses jUnit with the xmlUnit extension as its unit testing framework.

Test Source Layout

All of the source, configuration, and data files needed for unit tests are located in the src/test directory within the OpenSAML 2 source tree. Unit test classes should be located, in a package structure that mirrors the class being tested, in the src/test/java directory. For example, a unit test exercising the class org.opensaml.saml1.core.impl.ResponseMarshaller would be located in the directory src/test/java/org/opensaml/saml1/core/impl . Data files needed for the test are placed in the same package based directory but are rooted in the src/test/resources/data directory. Using the example above, test data files for ResponseMarshaller test would be located in src/test/resources/data/org/opensaml/saml1/core/impl . The src/test/resources directory also contains OpenSAML 2 configuration files used during tests.

Writing a Unit Test

All unit test cases must be named !XxxTest.java where Xxx is the name of the class being tested and should extend org.opensaml.common.BaseTestCase. Test method names, within the unit test, must be named testXxx where Xxx is some descriptive name for the test. For those familiar with jUnit, no TestSuite is necessary.

Extending BaseTestCase gives access to xmlUnit's assertion, the most useful of which is assertXMLEqual(Document, Document). This allows documents to be compared for equality (obviously). This is needed because serializing documents and doing string comparisons will normally fail because attributes can be in a different order in each case.

Executing the Tests

The standard maven command test will execute the unit tests.

Logging

Located directly under the src/test/resources directory is a logback configuration file used when testing.