Fiz uma classe que lê alguns SQLs e os executa, sendo chamada de
DatabaseManager.
Mas o que está me intrigando é uma coisa na seguinte classe de teste:
public class DatabaseManagerTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
DatabaseManager manager = DatabaseManager.getManager();
manager.execute("test.create");
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
DatabaseManager manager = DatabaseManager.getManager();
manager.execute("test.drop");
}
...
Não conheço muito do JUnit, mas acho que o método assinado com @AfterClass deveria
ser executado no final do teste todo não é?
O problema é que ele até chega a passar ali, mas não faz o drop da tabela, ela continua lá,
então quando executo novamente dá erro no setUpBeforeClass() pq a tabela já existe.
O problema não é no manager.execute(“test.drop”), pq se executo ele assim no setUpBeforeClass()
ele funciona:
try {
manager.execute("test.create");
} catch (Exception e) {
manager.execute("test.drop");
manager.execute("test.create");
}
Alguém sabe pq não funciona no tearDownAfterClass()??
Obrigado…