I have a system what generate application automatically. My system generate HTML, Java code, SQL script automatics (!!!). I must test SQL script file (foo.sql).
I have: ApplicationTests.java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.jdbc.Sql.ExecutionPhase;
import org.springframework.test.context.jdbc.SqlGroup;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
@SuppressWarnings("deprecation")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@SqlGroup({ @Sql(executionPhase = ExecutionPhase.BEFORE_TEST_METHOD, scripts = "classpath:beforeTestRun.sql"),
@Sql(executionPhase = ExecutionPhase.AFTER_TEST_METHOD, scripts = "classpath:afterTestRun.sql") })
public class ApplicationTests {
@Autowired
JdbcTemplate jdbcTemplate;
@Test
public void contextLoads() throws IOException {
String query = new String(Files.readAllBytes(Paths.get("E:\\foo.sql")));
List<Map<String, Object>> resultSet = jdbcTemplate.queryForList(query);
System.out.println(resultSet);
}
}
class Application.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
File beforeTestRun.sql is empty, afterTestRun.sql is empty. File query.sql has 1245 line of SQL code (DDL script)
How to set specific database management system and/or using real database server in Spring test? (I use PostgreSQL/Oracle).
Aucun commentaire:
Enregistrer un commentaire