Class ParameterizedJUnitGuiceRunner

  • All Implemented Interfaces:
    org.junit.runner.Describable, org.junit.runner.manipulation.Filterable, org.junit.runner.manipulation.Orderable, org.junit.runner.manipulation.Sortable

    public class ParameterizedJUnitGuiceRunner
    extends org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters
    Parameterized JUnit runner for tests case with Google Guice. This runner is alternative to JUnitGuiceRunner with ability to run parametrized tests.

    Clients may use annotation GuiceModules to configure google Guice injector for annotated class.
    Runner will create injector with bindings form all GuiceModules.modules() and then override them with all GuiceModules.overrides().

    Note, that Guice injector will be created once per test class parameter value.

    Example of usage:

     @RunWith(Parameterized.class)
     @UseParametersRunnerFactory(GuiceAwareParametersRunnerFactory.class)
     @GuiceModules(
         modules = { ModuleA.class, ModuleB.class, ModuleC.class },
         overrides = { TestModuleA.class })
     public class Test
     {
         @Inject
         private IServiceFromModuleA serviceFromModuleA;
    
         @Inject
         private IServiceFromModuleB serviceFromModuleB;
    
         @Parameter
         public String dataParameter;
    
         @Parameters
         public static String[] dataParameters()
         {
             return new String[] { "firstData", "secondData" };
         }
    
         // this test will be executed two times, one time per data parameter
         @Test
         public void shouldTestSomething()
         {
             serviceFromModuleA.use(dataParameter);
             serviceFromModuleB.use(dataParameter);
         }
     }
     
    See Also:
    GuiceModules, Parameterized, GuiceAwareParametersRunnerFactory
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Object createTest()  
      • Methods inherited from class org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters

        classBlock, getName, getRunnerAnnotations, testName, validateConstructor, validateFields
      • Methods inherited from class org.junit.runners.BlockJUnit4ClassRunner

        collectInitializationErrors, computeTestMethods, createTest, describeChild, getChildren, getTestRules, isIgnored, methodBlock, methodInvoker, possiblyExpectingExceptions, rules, runChild, validateInstanceMethods, validateNoNonStaticInnerClass, validateOnlyOneConstructor, validateTestMethods, validateZeroArgConstructor, withAfters, withBefores, withPotentialTimeout
      • Methods inherited from class org.junit.runners.ParentRunner

        childrenInvoker, classRules, createTestClass, filter, getDescription, getTestClass, order, run, runLeaf, setScheduler, sort, validatePublicVoidNoArgMethods, withAfterClasses, withBeforeClasses, withInterruptIsolation
      • Methods inherited from class org.junit.runner.Runner

        testCount
    • Constructor Detail

      • ParameterizedJUnitGuiceRunner

        public ParameterizedJUnitGuiceRunner​(org.junit.runners.parameterized.TestWithParameters test)
                                      throws org.junit.runners.model.InitializationError
        Parameters:
        test - the test class, cannot be null
        Throws:
        org.junit.runners.model.InitializationError - if the test class is malformed
    • Method Detail

      • createTest

        public Object createTest()
                          throws Exception
        Overrides:
        createTest in class org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters
        Throws:
        Exception