2017-02-19 1 views
1

Я использую springtestdbunit для написания тестовых примеров для моего репозитория/dao. Я заполняю данные, используя сценарии db, а затем сопоставляя их с ожидаемыми sql-скриптами.Как установить свойства по умолчанию в весеннем наборе данных DatabaseConfig

Я хочу установить escape-символ для своих образцов sql-скриптов.

Мой испытательный образец класса выглядит следующим образом

@RunWith(SpringJUnit4ClassRunner.class) 
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, 
DirtiesContextTestExecutionListener.class, 
TransactionalTestExecutionListener.class, 
DbUnitTestExecutionListener.class}) 
@DbUnitConfiguration(dataSetLoader = ReplacementDataSetLoader.class) 
@DatabaseSetup({"notification-init.xml"}) 
@SpringBootTest(classes = {TestApplication.class, DaoConfig.class}) 
public class NotificationRepositoryTest { 

@Autowired 
private NotificationRepository notificationRepository; 


@After 
@DatabaseTearDown 
public void tearDown() throws Exception { 

} 

@Before 
public void setUp() throws Exception { 
    //donorModel = donorRepository.findOne(0L); 
} 

Все, что я хочу, чтобы установить эти два свойства, когда я конфигурированию свою базу данных H2.

DatabaseConfig.PROPERTY_ESCAPE_PATTERN 
DatabaseConfig.FEATURE_ALLOW_EMPTY_FIELDS 

ответ

0

Вот пример из проекта весной загрузки с помощью JavaConfig установить эти 2 свойства:

@Configuration 
@Profile("test") 
public class DBUnitConfiguration { 

    @Bean 
    public DatabaseConfigBean dbUnitDatabaseConfig() { 
     DatabaseConfigBean bean = new DatabaseConfigBean(); 
     bean.setAllowEmptyFields(true); 
     bean.setEscapePattern("\"?\""); 
     return bean; 
    } 

    @Bean 
    public DatabaseDataSourceConnectionFactoryBean dbUnitDatabaseConnection(
      DatabaseConfigBean dbUnitDatabaseConfig, 
      DataSource dataSource 
    ) { 
     DatabaseDataSourceConnectionFactoryBean bean = new DatabaseDataSourceConnectionFactoryBean(dataSource); 
     bean.setDatabaseConfig(dbUnitDatabaseConfig); 
     return bean; 
    } 
} 

Это требует 1.3.0 версии весна-тест-DbUnit установить опору ALLOW_EMPTY_FIELDS:

<dependency> 
    <groupId>com.github.springtestdbunit</groupId> 
    <artifactId>spring-test-dbunit</artifactId> 
    <version>1.3.0</version> 
    <scope>test</scope> 
</dependency> 
Смежные вопросы