环境:基于SSH框架,外加3层结构(dao层、service层、action层)
1.针对action使用new一个对象
IndexAction action = new IndexAction();
2.然后在@Before(如果测试方法之间没有数据交叉的部分的话,可以考虑使用BeforeClass来加载【只加载一次】)里面默认加载Spring的配置文件applicationContext.xml,因为hibernate是由spring来管理的,所以只需要加载spring的配置文件就行了:
BeanFactory beanFactory = new ClassPathXmlApplicationContext( "file:E:\\eclipseWorkspace\\project\WebRoot\\WEB-INF\\applicationContext.xml" );
//因为默认的applicationContext.xml的位置我无法确定(貌似它是找的WebContent下的WEB-INF/classes的路径,但是我的applicationContext.xml放在WEB-INF下面,我用“../applicationContext.xml”却不行,牛人请指教),所以使用的是本地绝对路径,在加载绝对路径的时候,必须在前面加上(file:)
3.然后再有用到注入对象的地方使用beanFactory来getBean(),同时要把get到的bean赋值到对象的属性上面,供给调用:
action. commonservice = (CommonService) beanFactory .getBean( "commonServices" );
4.最后断言结果是否与预测一致
Assert.assertEquals(
"success"
, result);