我正在使用 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”出现问题(例如,某些数据类型可能不会得到适当的支持)。在极少数情况下,您可能会看到此消息,因为受支持的数据库产品列表不完整 (list=[derby])。如果是这样,请通过论坛请求更新 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 中解决这个问题。请帮忙。