我正在使用 spring-test-dbunit,并且在单元测试中收到一条警告,其中包含以下消息:
Code:
@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());
}
}
Warning:
1093 [主要] 警告 org.dbunit.dataset.AbstractTableMetaData - 潜在
发现问题:配置的数据类型工厂'class
org.dbunit.dataset.datatype.DefaultDataTypeFactory' 可能会导致
当前数据库“MySQL”的问题(例如某些数据类型可能
无法得到适当的支持)。在极少数情况下,您可能会看到此消息
因为支持的数据库产品列表不完整
(列表=[德比])。如果是这样,请通过以下方式请求 java 类更新
论坛。如果您使用自己的 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 中解决这个问题。请帮忙。