Class Filter

java.lang.Object
org.junit.runner.manipulation.Filter
Direct Known Subclasses:
Categories.CategoryFilter

public abstract class Filter extends Object
The canonical case of filtering is when you want to run a single test method in a class. Rather than introduce runner API just for that one case, JUnit provides a general filtering mechanism. If you want to filter the tests to be run, extend Filter and apply an instance of your filter to the Request before running it (see JUnitCore.run(Request). Alternatively, apply a Filter to a Runner before running tests (for example, in conjunction with RunWith.
Since:
4.0
  • Field Details

    • ALL

      public static final Filter ALL
      A null Filter that passes all tests through.
  • Constructor Details

    • Filter

      public Filter()
  • Method Details

    • matchMethodDescription

      public static Filter matchMethodDescription(Description desiredDescription)
      Returns a Filter that only runs the single method described by desiredDescription
    • shouldRun

      public abstract boolean shouldRun(Description description)
      Parameters:
      description - the description of the test to be run
      Returns:
      true if the test should be run
    • describe

      public abstract String describe()
      Returns a textual description of this Filter
      Returns:
      a textual description of this Filter
    • apply

      public void apply(Object child) throws NoTestsRemainException
      Invoke with a Runner to cause all tests it intends to run to first be checked with the filter. Only those that pass the filter will be run.
      Parameters:
      child - the runner to be filtered by the receiver
      Throws:
      NoTestsRemainException - if the receiver removes all tests
    • intersect

      public Filter intersect(Filter second)
      Returns a new Filter that accepts the intersection of the tests accepted by this Filter and second