使用spring进行内存测试,从与测试类

时间:2016-01-26 12:14:27

标签: java spring maven spring-boot integration-testing

我目前正在为我的应用程序实现一些存储库测试。我设置了一个内存数据库。

我的测试类中有以下设置:

package dk.test

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class)
@IntegrationTest
public class TestClass {

@Autowired
private Repository repository;

@Test
@Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = "classpath:dk/test/seed.sql") //is placed together with the test class in dk.test - does not work
@Sql(executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, scripts = "classpath:truncate-table.sql") //Is placed in /src/test/resources - works fine
public void restRepository() {
    List<Data> result = repository.findData();

    assertThat(result.size(), is(2));
}

}

当我的脚本放在/ src / test / resources /中时,一切正常,我的脚本被执行,我得到了预期的结果。

-src
  -test
    -java
      -dk.test
        -TestClass.java
    -resources
      -seed.sql

但是,当我将seed.sql与测试类放在一起时,如下所示:

-src
  -test
    -java
      -dk.test
        -TestClass.java
        -seed.sql

我得到以下例外:

org.springframework.jdbc.datasource.init.CannotReadScriptException: Cannot read SQL script from class path resource [dk/test/seed.sql]; nested exception is java.io.FileNotFoundException: class path resource [dk/test/seed.sql] cannot be opened because it does not exist

我想要这样的设置,因为我们将有许多不同的数据集来执行测试,并且更容易看到哪些数据与精确的测试类相结合。

0 个答案:

没有答案