-1

想要注入一个注入了已配置数据源的 dao.. 不喜欢注释,因为它使代码难看,我想要一个纯 XML 解决方案。

测试用例位于 test 文件夹的子文件夹中,与 src 文件夹处于同一级别

src
   com
       name
           dao
               ProductDao
test
   com
       name
           dao
               ProductDaoTest

ProductDaoTest 需要将 ProductDao 注入其中。尝试这样做,spring 注入它没问题,但是 ProductDao 依赖没有被注入,我正面临 NPE。

考虑过将测试类移动到 src 文件夹中,但我认为我不应该这样做。我正在考虑的另一种选择是通过浏览控制器调用来运行测试用例(但不再是单元测试),所以我一直在努力找出正确的做法。

谢谢你!ps测试是junit、tomcat、spring 3.1

4

2 回答 2

1

不,你不应该那样做。您只需要使应用程序上下文可用于测试并要求它适当地连接它们。

于 2012-10-17T21:56:28.120 回答
1

您想对 DAO 中的哪些方法进行单元测试?您实际上不是在尝试测试数据库连接吗?

否则我同意@duffymo。

编辑:详细说明一下,尝试使以下代码块适应您的测试类需求:

final ClassPathXmlApplicationContext beanFactory = 
    new ClassPathXmlApplicationContext( "applicationContext.xml" );
AutowireCapableBeanFactory factory = beanFactory.getAutowireCapableBeanFactory();
factory.autowireBeanProperties( this, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE , true );
ProductDao dao = context.getBean( "productDao" );

看看这是否对 Dao 依赖 bean 不起作用。

干杯,

于 2012-10-17T21:59:05.623 回答