Filter (JUnit API)
Date: 2018-08-04

org.junit.runner.manipulation

## Class Filter

- java.lang.Object
- - org.junit.runner.manipulation.Filter

- Direct Known Subclasses:
    Categories.CategoryFilter

      public abstract class Filter
      extends java.lang.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 Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static Filter` | `ALL` A null `Filter` that passes all tests through.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Filter()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `apply(java.lang.Object child)` Invoke with a `Runner` to cause all tests it intends to run to first be checked with the filter.
    `abstract java.lang.String` | `describe()` Returns a textual description of this Filter
    `Filter` | `intersect(Filter second)` Returns a new Filter that accepts the intersection of the tests accepted by this Filter and `second`
    `static Filter` | `matchMethodDescription(Description desiredDescription)` Returns a `Filter` that only runs the single method described by `desiredDescription`
    `abstract boolean` | `shouldRun(Description description)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### ALL

          public static final Filter ALL

      A null `Filter` that passes all tests through.

  - ### Constructor Detail

    - #### Filter

          public Filter()

  - ### Method Detail

    - #### 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 java.lang.String describe()

      Returns a textual description of this Filter
      Returns:
        a textual description of this Filter

    - #### apply

          public void apply(java.lang.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`