Class FeatureSpecificTestSuiteBuilder<B extends FeatureSpecificTestSuiteBuilder<B,G>, G>

java.lang.Object
com.google.common.collect.testing.FeatureSpecificTestSuiteBuilder<B,G>
Type Parameters:
B - The concrete type of this builder (the 'self-type'). All the Builder methods of this class (such as named(java.lang.String)) return this type, so that Builder methods of more derived classes can be chained onto them without casting.
G - The type of the generator to be passed to testers in the generated test suite. An instance of G should somehow provide an instance of the class under test, plus any other information required to parameterize the test.
Direct Known Subclasses:
PerCollectionSizeTestSuiteBuilder

@GwtIncompatible public abstract class FeatureSpecificTestSuiteBuilder<B extends FeatureSpecificTestSuiteBuilder<B,G>, G> extends Object
Creates, based on your criteria, a JUnit test suite that exhaustively tests the object generated by a G, selecting appropriate tests by matching them against specified features.
Author:
George van den Driessche
  • Constructor Details

    • FeatureSpecificTestSuiteBuilder

      public FeatureSpecificTestSuiteBuilder()
  • Method Details

    • self

      protected B self()
    • usingGenerator

      @CanIgnoreReturnValue protected B usingGenerator(G subjectGenerator)
    • getSubjectGenerator

      public G getSubjectGenerator()
    • withSetUp

      @CanIgnoreReturnValue public B withSetUp(Runnable setUp)
    • getSetUp

      public Runnable getSetUp()
    • withTearDown

      @CanIgnoreReturnValue public B withTearDown(Runnable tearDown)
    • getTearDown

      public Runnable getTearDown()
    • withFeatures

      @CanIgnoreReturnValue public B withFeatures(Feature<?>... features)
      Configures this builder to produce tests appropriate for the given features. This method may be called more than once to add features in multiple groups.
    • withFeatures

      @CanIgnoreReturnValue public B withFeatures(Iterable<? extends Feature<?>> features)
    • getFeatures

      public Set<Feature<?>> getFeatures()
    • named

      @CanIgnoreReturnValue public B named(String name)
      Configures this builder produce a TestSuite with the given name.
    • getName

      public String getName()
    • suppressing

      @CanIgnoreReturnValue public B suppressing(Method... methods)
      Prevents the given methods from being run as part of the test suite.

      Note: in principle this should never need to be used, but it might be useful if the semantics of an implementation disagree in unforeseen ways with the semantics expected by a test, or to keep dependent builds clean in spite of an erroneous test.

    • suppressing

      @CanIgnoreReturnValue public B suppressing(Collection<Method> methods)
    • getSuppressedTests

      public Set<Method> getSuppressedTests()
    • createTestSuite

      public junit.framework.TestSuite createTestSuite()
      Creates a runnable JUnit test suite based on the criteria already given.
    • checkCanCreate

      protected void checkCanCreate()
      Throw IllegalStateException if createTestSuite() can't be called yet.
    • getTesters

      protected abstract List<Class<? extends AbstractTester>> getTesters()
    • makeSuiteForTesterClass

      protected junit.framework.TestSuite makeSuiteForTesterClass(Class<? extends AbstractTester<?>> testerClass)
    • formatFeatureSet

      protected static String formatFeatureSet(Set<? extends Feature<?>> features)