Java 无法在Spring MVC测试中自动连接sessionFactory
我想为用SpringMVC编写的现有项目编写集成测试。所有当前的配置都是XML,我想用Java代码定义单独的配置类,以创建要在内存数据库中使用的DataSource和SessionFactory applicationContext.xml:Java 无法在Spring MVC测试中自动连接sessionFactory,java,spring,unit-testing,spring-mvc,junit,Java,Spring,Unit Testing,Spring Mvc,Junit,我想为用SpringMVC编写的现有项目编写集成测试。所有当前的配置都是XML,我想用Java代码定义单独的配置类,以创建要在内存数据库中使用的DataSource和SessionFactory applicationContext.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
<context:component-scan base-package="az.company.dcs.restapp"/>
<bean class="az.company.dcs.restapp.component.I18nConfig">
<constructor-arg name="language" value="az"/>
<constructor-arg name="country" value="AZ"/>
</bean>
</beans>
我的项目结构:
但当我尝试运行示例测试时,它找不到我的sessionFactory bean,并给出错误:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error
creating bean with name
'az.company.dcs.restapp.dao.AutoBraceletTrackingDAOImplTest': Unsatisfied
dependency expressed through field 'sessionFactory'; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No
qualifying bean found for dependency [org.hibernate.SessionFactory]:
expected at least 1 bean which qualifies as autowire candidate. Dependency
annotations:
{@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=sessionFactoryTest)}
我的测试班:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestDbConfig.class})
public class AutoBraceletTrackingDAOImplTest {
@Autowired
@Qualifier("sessionFactoryTest")
private SessionFactory sessionFactory;
@Before
public void setUp() throws Exception {
}
@Test
public void create() throws Exception {
System.out.println("Test");
}
}
您仅激活配置文件
测试的配置。由于您尚未激活配置文件,您的配置或多或少被忽略。我的错。我认为运行测试将自动激活测试配置文件。谢谢
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestDbConfig.class})
public class AutoBraceletTrackingDAOImplTest {
@Autowired
@Qualifier("sessionFactoryTest")
private SessionFactory sessionFactory;
@Before
public void setUp() throws Exception {
}
@Test
public void create() throws Exception {
System.out.println("Test");
}
}