java - buildSessionFactory 在junit测试模式下抛出“网络适配器无法建立连接”错误,这在实时模式下很好
问题描述
在单元测试中,我卡住了。当我使用 dao 时,buildSessionFactory 方法会抛出“网络适配器无法建立连接”错误。这在实时模式下工作正常。
这是单元测试代码。
public class OAuth20Test {
private UserDetailsDAOI userDetailsDAO;
@BeforeEach
public void setUp () throws Exception {
this.userDetailsDAO = new UserDetailsDAO();
}
@Test
@DisplayName("Simple checkAuthGrant should work")
public void testCheckAuthGrant() {
if (this.userDetailsDAO == null) {
System.out.println("user dao is null");
} else {
assertEquals(true, userDetailsDAO.checkAuthGrant("*****", "*****", "*****", "*****"),
"Regular checkAuthGrant should work");
}
}
这是 userDetialsDAO 中的 getMainDBSessionFactory 函数
long lStartTime = System.currentTimeMillis();
Configuration mainDBConfiguration = getMainDBSessionConfiguration();
Configuration configuration = new Configuration();
String dbType = DAOConfiguration.getString("dao.db.type", "");
String mainHibernateConfigFileName = "hibernate-config-main-" + dbType + ".xml";
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(mainDBConfiguration.getProperties())
.configure(mainHibernateConfigFileName)
.build();
return mainDBConfiguration.buildSessionFactory(serviceRegistry);
buildSessionFactory 函数来自包 org.hibernate.cfg
并且错误发生在mainDBConfiguration.buildSessionFactory(serviceRegistry)
我发现出现这个错误的原因是JUnit与创建会话工厂不兼容。
应对这种情况的方法是什么?
解决方案
推荐阅读
- javascript - 即使在浏览器关闭后如何保留会话?我正在使用基于开放 ID 连接的身份验证
- python - 在 Python 的 rdflib 中,获取仅连接节点的子图
- codeigniter - PHP Codeigniter 3.1.10:无法更新会话数据
- php - MYSQL Laravel 产品变体结构
- css - 如何使标签与 CSS 保持一致?
- django - Django REST:动态添加模型字段
- r - Lubridate - 如何使用 parse_date_time 正确解析十进制分钟
- xml - XML 重新排列和分组元素节点 XSL 1.0
- error-handling - spa/meson.build:29:4:错误:找不到依赖项“bluez”,在 Ubuntu 16.04 中安装 PIPEWIRE 时尝试了 pkgconfig 和 cmake
- azure - 如何保护我的 VM 和应用程序网关之间的流量?