DbUnit có thể hoạt động với cơ sở dữ liệu thực. Bạn chỉ có thể làm điều đó với xml.
Đầu tiên hãy thêm vào pom.xml smth như thế này (phiên bản có thể là phiên bản khác):
<dependency>
<groupId>org.dbunit</groupId>
<artifactId>dbunit</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.github.springtestdbunit</groupId>
<artifactId>spring-test-dbunit</artifactId>
<version>1.1.0</version>
</dependency>
Sau đó, thêm vào thư mục tài nguyên thử nghiệm của bạn spring-config.xml (tôi sử dụng postgresql)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="username" value="****" />
<property name="password" value="*****" />
<property name="url" value="url-to-server-with-your-db"/>
</bean>
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg ref="dataSource" />
</bean>
</beans>
Thêm bean cho các lớp bạn cần kiểm tra trong xml này.
Trong lớp thử nghiệm, hãy thêm chú thích:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/spring-config.xml"})
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class,
TransactionalTestExecutionListener.class,
DbUnitTestExecutionListener.class})
Trước khi phương pháp thử nghiệm, hãy thêm các chú thích bạn cần tùy thuộc vào mục tiêu thử nghiệm. Ví dụ:
@DatabaseSetup(value = "/testData.xml")
@DatabaseTearDown(value = "/testData.xml")
Nó có nghĩa là gì? Bạn có xml của mình với tập dữ liệu. Dữ liệu trong tệp này sẽ được chuyển đến cơ sở dữ liệu của bạn trước khi kiểm tra (@DatabaseSetup) và sau khi kiểm tra, bạn có thể thực hiện lại việc này (@DatabaseTearDown) - tệp tương tự để khôi phục trạng thái ban đầu hoặc tệp khác khi bạn cần.>