Comment exécuter @Sql avant une méthode @Before

J'essaie de combiner le suivi des annotations:

org.springframework.test.contexte.jdbc.Sql
et
org.junit.Avant

Comme le code ci-dessous:

@Test
@Sql(scripts = "dml-parametro.sql")
public void testData(){
    Iterable<Parametro> parametros = parametroService.findAll();
    List<Parametro> parametrosList = Lists.newArrayList(parametros);

    Assert.assertThat(parametrosList.size(), Is.is(1));
}

@Before
public void beforeMethod() {
    JdbcTestUtils.deleteFromTables(jdbcTemplate, "PARAMETRO");
}

Le code dans la méthode @Avant est de courir après le script "dml-parametro.sql" dans le @Sql annotation.

Est-il le droit de le faire?

Pour cette solution, je suis en utilisant @Après que @Avant, mais je tiens à cdelete tables avant l'exécution du test, pas après.

Je ne voudrais pas utiliser @SqlConfig. Je ne suis pas en utilisant transacional portée sur le niveau du test, j'ai donc besoin de nettoyer mes tables dans chaque méthode de test. Si chaque méthode de test besoin de nettoyer les tables, je voudrais le faire dans le @Avant méthode. Je ne voudrais pas le faire à chaque méthode de test avec @SqlConfig. Je pense que le comportement de @Sql à exécuter avant que @Avant est faux.

source d'informationauteur Rafael Duque Estrada