我使用的是Spring 3.1.0.M2。我正在编写一些JUnit 4测试来测试一些数据库功能,但是我无法连接我的数据源。在我的JUnit类中,我有...春季:在Junit测试中布置数据源的问题
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=AnnotationConfigContextLoader.class,
classes={DataSource.class, WebLeadsDAOImpl.class})
public class TestDB {
...
@Qualifier("mycoSessionFactory")
private SessionFactory sessionFactory;
/**
* Using a single lead lookup should speed up our testing queries.
* <p>
* The lead is is 8104051
* </p>
*/
@Before
public void prep() {
assertNotNull(sessionFactory);
...
}
但“sessionFactory”对象重复为空。这里是我正在尝试对其进行配置......
@Lazy
@Component
@PropertySource("classpath:oracle.properties")
public class DataSource {
…
@Bean(name="mycoSessionFactory")
public SessionFactory sessionFactory() throws Exception {
final SessionFactory sessionFactory = new AnnotationSessionFactoryBuilder()
.setDataSource(dataSource())
.setHibernateProperties(databaseProperties())
.setPackagesToScan("com.criticalmass.systems.leadsmonitor.domain")
.setSchemaUpdate(false)
.buildSessionFactory();
return sessionFactory;
}
的原因,我不只是用“@Autowired”,是因为我有两个SessionFactory的豆类。任何想法为什么我的数据源连接不正确?谢谢, - 戴夫
我编辑了我的回复,表明我的JUnit类已经有了指向相应类的“@ContextConfiguration”注解。实际上,我通过日志记录验证了上面列出的SessionFactory bean生成方法正在被调用。任何其他想法? – Dave
@Dave:看到我改变的答案 – Ralph