gpt4 book ai didi

spring - JUnit 4 - 在运行单元测试之前以编程方式创建 HSQLDB 表

转载 作者:行者123 更新时间:2023-11-28 21:31:56 25 4
gpt4 key购买 nike

我正在使用 HSQLDB 进行单元测试,我有一堆测试类,它们都扩展了一个抽象类 MyAbstractTestBase。

class abstract MyAbstractTestBase 
{
static
{
setUpDBTables();
}

public static void setUpDBTables()
{
context = new ClassPathXmlApplicationContext(new String[]{
"file:spring-configuration/unit-testing-config.xml"
});
//InputStream inputStream = getClass().getClassLoader().getResourceAsStream("db/MY_TABLE.sql");
DataSource dataSource = (DataSource)context.getBean("MyDataSource");

namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);

}
}

这种方法的主要问题是 entityManager 由 spring 创建,

@PersistenceContext(unitName = MyConstants.ENTITY_MANAGER_FACTORY_UNIT_NAME)
protected EntityManager entityManager;

不会持久化数据,也不会抛出异常,但如果我尝试使用“select”读取一些数据,它会起作用。

这是我的问题,如何在开始单元测试之前创建表?这样我的 entityManager 就会按预期工作。

另外,为什么我的 entityManager 没有抛出任何异常,却没有保留任何记录。

最佳答案

如果您使用 Spring 测试,我强烈建议使用此答案中的方法:How to load DBUnit test data once per case with Spring Test

关于spring - JUnit 4 - 在运行单元测试之前以编程方式创建 HSQLDB 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17379363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com