DbUnitは実際のデータベースと連携できます。 xmlでのみ実行できます。
まず、次のようにpom.xml smthに追加します(バージョンは別の場合もあります):
<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>
次に、テストリソースディレクトリspring-config.xmlに追加します(私は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>
このxmlでテストする必要のあるクラスのBeanを追加します。
テストクラスでアノテーションを追加します:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/spring-config.xml"})
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class,
TransactionalTestExecutionListener.class,
DbUnitTestExecutionListener.class})
テストメソッドの前に、テストの目標に応じて必要な注釈を追加します。例:
@DatabaseSetup(value = "/testData.xml")
@DatabaseTearDown(value = "/testData.xml")
どういう意味ですか?データセットを含むxmlがあります。このファイルのデータは、テスト前にデータベースにプッシュされ(@DatabaseSetup)、テスト後にこれを再度実行できます(@DatabaseTearDown)-初期状態を復元するための同じファイルまたは必要に応じて別のファイル。これですべてです。
>