【发布时间】:2015-02-23 12:05:22
【问题描述】:
我正在使用 spring-test-dbunit,我在单元测试中收到一条警告消息:
代码:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/context.xml"})
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class,
DirtiesContextTestExecutionListener.class,
TransactionalTestExecutionListener.class,
DbUnitTestExecutionListener.class })
public class TestDB {
@Autowired
private ICourseService courseService;
@Test
@DatabaseSetup("sampleData.xml")
public void testFind() throws Exception {
List<Course> courseList = this.courseService.getAllCourses();
assertEquals(1, courseList.size());
assertEquals("A001", courseList.get(0).getCourseNumber());
}
}
警告:
1093 [main] WARN org.dbunit.dataset.AbstractTableMetaData - 潜力 发现问题:配置的数据类型工厂'class org.dbunit.dataset.datatype.DefaultDataTypeFactory' 可能会导致 当前数据库“MySQL”的问题(例如,某些数据类型可能 没有得到适当的支持)。在极少数情况下,您可能会看到此消息 因为支持的数据库产品列表不完整 (列表=[德比])。如果是这样,请通过 论坛。如果您使用自己的 IDataTypeFactory 扩展 DefaultDataTypeFactory,确保覆盖 getValidDbProducts() 指定支持的数据库产品。
当我使用没有spring-test-dbunit的DBunit时,问题可以解决如下:
Connection jdbcConnection = DriverManager.getConnection( "jdbc:mysql://localhost/test", "root", "root");
IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);
connection.getConfig().setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new MySqlDataTypeFactory());
connection.getConfig().setProperty(DatabaseConfig.PROPERTY_METADATA_HANDLER, new MySqlMetadataHandler());
我不知道如何在 spring-test-dbunit 中解决这个问题。请帮忙。
【问题讨论】:
标签: java junit junit4 dbunit spring-test-dbunit