这里有一种方法:比如: @Test public void testGetAllResult() throws Exception { System.out.println("getAllResult--------------"); ApplicationContext factory = new FileSystemXmlApplicationContext("web/WEB-INF/applicationContext.xml"); IPersonService dao = (IPersonService) factory.getBean("iPersonService"); CombiSearchAction instance = new CombiSearchAction(); instance.setiPersonService(dao); List<Hashtable> result = instance.getAllResult(); for (int i = 0; i <result.size(); i++) { System.out.println(result.get(i).get("uid")); } }与大家共享,这种方式不需要添加另外任何的jar包。
org.springframework.mock.web 包有一组Servlet API 的很详尽的mock对象,主要面向Spring Web MVC 框架,能方便的测试web上下文和控制器。这些mock对象通常比使用动态mock对象更方便(例如 EasyMock) 或已有的Servlet API mock对象(如 MockObjects).
跟容器相关的测试应该做两种,一种是IC(In Container)测试,一种是OOC(Out of Container)测试,IC测试就的实现应该跟你的功能的实现是一样的,只不过加入assert判断结果是不是正确。 OOC测试要用到Mock工具,Java常用的是EasyMock 这是个EasyMock的小例子public class YourActionTest { private YourAction action; @Before public void setUp() { super.setUp(); action = new YourAction(); //设置action的类变量 action.setXXXXXX(financeFacade); session.setAttribute("cachedAccount", accountTO); } @Test public void testMethod1() { action.method1("2"); Assert.assertEquals(NONE, action.method1("2"); ); }}
Account account = (Account)this.request.getSession().getAttribute("account");
要想用Junit测试,你的代码必须和服务器先脱离
先想办法,让你的程序在main方法里能跑吧struts2都把你要的东西封装在map里了,你为什么还一定要用request啊
这篇文章的后半部分有关于junit测试action的
ActionContext actionContext = ActionContext.getContext();
Map session = actionContext.getSession(); 我这里是不是要继承SessionAware接口,那样的话,利用Map就隔离容器了。具体我还没做...
@Test
public void testGetAllResult() throws Exception {
System.out.println("getAllResult--------------");
ApplicationContext factory = new FileSystemXmlApplicationContext("web/WEB-INF/applicationContext.xml");
IPersonService dao = (IPersonService) factory.getBean("iPersonService");
CombiSearchAction instance = new CombiSearchAction();
instance.setiPersonService(dao);
List<Hashtable> result = instance.getAllResult();
for (int i = 0; i <result.size(); i++) {
System.out.println(result.get(i).get("uid"));
}
}与大家共享,这种方式不需要添加另外任何的jar包。
OOC测试要用到Mock工具,Java常用的是EasyMock
这是个EasyMock的小例子public class YourActionTest { private YourAction action;
@Before public void setUp() { super.setUp(); action = new YourAction();
//设置action的类变量
action.setXXXXXX(financeFacade); session.setAttribute("cachedAccount", accountTO); }
@Test public void testMethod1() { action.method1("2"); Assert.assertEquals(NONE, action.method1("2");
); }}