Class ParameterizedJUnitGuiceRunner

java.lang.Object
org.junit.runner.Runner
org.junit.runners.ParentRunner<org.junit.runners.model.FrameworkMethod>
org.junit.runners.BlockJUnit4ClassRunner
org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters
com._1c.g5.v8.dt.testing.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:
  • Constructor Summary

    Constructors
    Constructor
    Description
    ParameterizedJUnitGuiceRunner(org.junit.runners.parameterized.TestWithParameters test)
  • Method Summary

    Modifier and Type
    Method
    Description
     

    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • 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 Details

    • createTest

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