我们知道如果你用Spring来管理你的Hibernate和Struts后,那么一些要访问的对象都交给Spring创建。如:
在UserServiceImpl中用到的UserDao接口,只有一个声明和一个Set方法。如果直接调用UserServiceImpl中的方法
进行Junit测试的话会报空指针的异常。因为我们直接访问UserServiceImpl时Spring没有帮我们创建UserDao的实例。
所以我们要自己去创建这个实例,也许你会想到在applicationContext.xml中我们已经配置了UserDaoImpl的Bean。
所以我们可以从那里获得,方法如下:
applicationContext.Xml
Java代码
...... <bean id="userDao" class="com.accp.sshDemo.dao.impl. userDaoImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> ......
UserDaoImplTest.java
java代码
UserDao userDao= null; @Before public void setUp() throws Exception { ApplicationContext ctx = new FileSystemXmlApplicationContext("/WebRoot/WEB-INF/classes/applicationContext.xml"); userDao = (UserDao) ctx.getBean("userDao"); }
这时就可以测试了
Java代码
@Test public void testGet() { User user=userDao.get("00001"); assertEquals(user.getName,"admin"); }
OK!!
注释* 详细 junit.org