Interface TestStrategyAdapter

All Known Implementing Classes:
DefaultJUnitAdapter, MultiStrategyAdapter

public interface TestStrategyAdapter
This is an INTERNAL helper class of serenity, it should not be used directly and may be subject to refactoring.

It serves to decouple serenity-model (and serenity-core) from JUnit. If JUnit is on the classpath, JUnit classes will be handled specifically. But serenity will continue to function without JUnit being on the classpath. Furthermore, users can choose between JUnit 4 and JUnit 5 or even use both together.

Ideally this approach could be generalized to avoid any special treatment of JUnit as a test framework. Test-framework specific strategies could be registered from the framework-specific modules. That would allow to place the implementation of (and the tests for) the test-framework specific strategies into the modules that know about those frameworks and also have the necessary dependencies.

But this would be a more extensive change, potentially breaking backwards compatibility. So for now this class does exactly only this: It provides an adapter for JUnit 4 and JUnit 5, and makes explicit the parts of the code where there has previously been a hard dependency on JUnit 4.

As such it is self-contained and should be possible to be grasped rather easily. And it marks the starting point for a potential refactoring towards a more general approach.

  • Method Summary

    Modifier and Type Method Description
    java.util.List<TestTag> getTagsFor​(java.lang.reflect.Method testMethod)  
    java.util.Optional<java.lang.String> getTitleAnnotation​(java.lang.reflect.Method testMethod)  
    boolean isAssumptionViolatedException​(java.lang.Throwable throwable)  
    boolean isATaggableClass​(java.lang.Class<?> testClass)  
    boolean isIgnored​(java.lang.reflect.Method method)  
    boolean isSerenityTestCase​(java.lang.Class<?> testClass)  
    boolean isTestClass​(java.lang.Class<?> testClass)  
    boolean isTestMethod​(java.lang.reflect.Method method)  
    boolean isTestSetupMethod​(java.lang.reflect.Method method)  
    java.lang.Double priority()
    Indicates the priority this adopter should take when multiple adapters are found on the classpath.
  • Method Details

    • isTestClass

      boolean isTestClass​(java.lang.Class<?> testClass)
    • isTestMethod

      boolean isTestMethod​(java.lang.reflect.Method method)
    • isTestSetupMethod

      boolean isTestSetupMethod​(java.lang.reflect.Method method)
    • isSerenityTestCase

      boolean isSerenityTestCase​(java.lang.Class<?> testClass)
    • isAssumptionViolatedException

      boolean isAssumptionViolatedException​(java.lang.Throwable throwable)
    • isATaggableClass

      boolean isATaggableClass​(java.lang.Class<?> testClass)
    • isIgnored

      boolean isIgnored​(java.lang.reflect.Method method)
    • getTitleAnnotation

      java.util.Optional<java.lang.String> getTitleAnnotation​(java.lang.reflect.Method testMethod)
    • getTagsFor

      java.util.List<TestTag> getTagsFor​(java.lang.reflect.Method testMethod)
    • priority

      java.lang.Double priority()
      Indicates the priority this adopter should take when multiple adapters are found on the classpath. Adapters with higher prioity will be prefered.