Class EmbeddedDatabaseRule

java.lang.Object
org.junit.rules.ExternalResource
com.github.mjeanroy.dbunit.integration.spring.junit4.EmbeddedDatabaseRule
All Implemented Interfaces:
org.junit.rules.TestRule

public class EmbeddedDatabaseRule extends org.junit.rules.ExternalResource
A JUnit 4 Rule that can be used to start/stop embedded database.
Note that:
  • When used as a ClassRule, the embedded database will be started before all tests, and stopped after all tests.
  • When used as a Rule, the embedded database will be started before each test, and stopped after each test.
Here is an example using the ClassRule annotation:
  public class MyDaoTest {
    @ClassRule
    public static EmbeddedDatabaseRule rule = new EmbeddedDatabaseRule(
      new EmbeddedDatabaseBuilder()
        .generateUniqueName(true)
        .addScript("classpath:/sql/init.sql")
        .addScript("classpath:/sql/data.sql")
        .build()
    );

    @Test
    public void test1() throws Exception {
      Assert.assertEquals(2, count(rule.getDb().getConnection()));
    }
  }
  • Constructor Details

    • EmbeddedDatabaseRule

      public EmbeddedDatabaseRule(org.springframework.jdbc.datasource.embedded.EmbeddedDatabase db)
      Create rule.
      Parameters:
      db - Embedded database.
    • EmbeddedDatabaseRule

      public EmbeddedDatabaseRule()
      Create rule with default builder.
    • EmbeddedDatabaseRule

      public EmbeddedDatabaseRule(Class<?> testClass)
      Create rule and lookup for EmbeddedDatabaseConfiguration in the testClass to initialize the embedded database.
      Parameters:
      testClass - The tested class.
  • Method Details

    • before

      protected void before()
      Overrides:
      before in class org.junit.rules.ExternalResource
    • after

      protected void after()
      Overrides:
      after in class org.junit.rules.ExternalResource
    • getDb

      public org.springframework.jdbc.datasource.embedded.EmbeddedDatabase getDb()
      Gets currently created database instance.
      Returns:
      Database instance, may be null until rule has been initialized.