2015-12-29 5 views
-1

Я прочитал некоторую документацию DbUnit, и я не могу понять, почему я должен установить текущую базу данных url "jdbc: mysql: //127.0.0.1/hr", "hr", "hr «); и после этого я установил "fake" база данных в hr-seed.xml. Я знаю, что dbunit использует для базы данных только XML-файл, но для того, что является установочным соединением с реальной базой данных.Проверка DbUnit MySQL Java

protected IDatabaseConnection getConnection() 
     throws Exception { 

     Class driverClass = 
     Class.forName("org.gjt.mm.mysql.Driver"); 

     Connection jdbcConnection = 
     DriverManager.getConnection(
      "jdbc:mysql://127.0.0.1/hr", "hr", "hr"); 

     return new DatabaseConnection(jdbcConnection); 
    } 

    protected IDataSet getDataSet() throws Exception { 
     return new FlatXmlDataSet(
      new FileInputStream("hr-seed.xml")); 
    } 
<?xml version='1.0' encoding='UTF-8'?> 
<dataset> 
    <EMPLOYEE employee_uid='1' 
      start_date='2001-01-01'   
      first_name='Drew' ssn='333-29-9999' 
      last_name='Smith' /> 
    <EMPLOYEE employee_uid='2' 
      start_date='2002-04-04'   
      first_name='Nick' ssn='222-90-1111' 
      last_name='Marquiss' /> 
    <EMPLOYEE employee_uid='3' 
      start_date='2003-06-03'   
      first_name='Jose' ssn='111-67-2222' 
      last_name='Whitson' /> 
</dataset> 

ответ

1

DbUnit может работать с реальной базой данных. Вы можете сделать это только с помощью xml.

Сначала добавьте в pom.xml л, как это (версия может быть другой):

<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> 

Затем добавить к тесту ресурсы каталога весенне-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> 

Добавьте beans для классов, которые вам нужно протестировать в этом xml.

В тестовом классе добавления аннотаций:

@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) - тот же файл для восстановления исходного состояния или другого файла по мере необходимости. Вот и все.

0

Try MariaDB4j https://github.com/vorburger/MariaDB4j. Затем подключитесь к mysql в памяти для тестирования. Это изменило мою жизнь.

MariaDB4j - это Java-пусковая установка для MariaDB (= MySQL (R)), позволяющая использовать его с Java без ЛЮБОЙ установки/внешних зависимостей. Прочтите еще раз: вам не нужно устанавливать бинарные файлы MariaDB в вашей системе, чтобы использовать MariaDB4j!

Смежные вопросы