首页 > 解决方案 > 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与创建会话工厂不兼容。

应对这种情况的方法是什么?

标签: javaspringunit-testingjspjunit

解决方案


推荐阅读