My next problem testing spring service layer with junit4 is: How to call script that populates database only once before all @Test methods: I want to execute this once before all @Tests:
JdbcTestUtils.executeSqlScript(jdbcTemplate(), new FileSystemResource(
"src/main/resources/sql/mysql/javahelp-insert.sql"), false);
I tried to use @PostConstruct on my GenericServiceTest class(extended by test classes). It turned out that @PostConstruct is called every time before every @Test method. Interesting is that even methods annotated @Autowired of GenericServiceTest are called before every @Test method.
I don't want to populate database before every test class but only once at spring-test startup.
How to execute above method only once before all @Test methods with spring testing framework and junit4?
Thank you!
Use Springs Embedded Database Support
<jdbc:embedded-database id="dataSource">
<jdbc:script location="classpath:myScript.sql"/>
<jdbc:script location="classpath:otherScript.sql"/>
</jdbc:embedded-database>
or Springs Initialize Database Support
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:myScript.sql"/>
<jdbc:script location="classpath:otherScript.sql"/>
</jdbc:initialize-database>