Hamcrest Integration

Deeper integration with the Hamcrest matcher library.

Maven Dependency


Note that to keep the classpath consistent this module has all its dependencies marked as provided (except hamcrest). It relies on your own project to define the needed dependencies, such as org.apache.sling:org.apache.sling.api.

See latest version on the downloads page.


The class org.apache.sling.testing.hamcrest.ResourceMatchers is the main entry point. It contains static methods that can be used to create assertions.

import static org.apache.sling.hamcrest.ResourceMatchers.resourceOfType;

public void MyServiceTest {

  public void loadResources() {
    Map<String, Object> expectedProperties = /* define properties */;
    Resource resource = /* load resource */ null;
    assertThat(resource, resourceOfType("my/app"));
    assertThat(resource, hasChildren("header", "body"));
    assertThat(resource, resourceWithProps(expectedProperties));


The Slingshot sample application uses these matchers, see SetupServiceTest.java for an example.

- ( Hamcrest Integration )