Java Struts 2.3.14 junit测试
我正在为我的应用程序使用Struts 2.3.14。。。我需要在我的应用程序中进行一些单元测试。。。所以我用的是junit4。。。但是当我在测试中使用Java Struts 2.3.14 junit测试,java,struts2,junit4,struts2-junit-plugin,Java,Struts2,Junit4,Struts2 Junit Plugin,我正在为我的应用程序使用Struts 2.3.14。。。我需要在我的应用程序中进行一些单元测试。。。所以我用的是junit4。。。但是当我在测试中使用ActionProxy时,它将显示NullPointerException 我的测试代码是: ActionProxy proxy=getActionProxy("/customize/saveRewards"); SaveRewardsPlus rewards=(SaveRewardsPlus)proxy.getAction();
ActionProxy
时,它将显示NullPointerException
我的测试代码是:
ActionProxy proxy=getActionProxy("/customize/saveRewards");
SaveRewardsPlus rewards=(SaveRewardsPlus)proxy.getAction();
request.setParameter("list[0].img_id", "1");
request.setParameter("list[0].tag", "Test Tag");
request.setParameter("list[0].desc", "Test Desc");
String result=proxy.execute();
assertEquals("success", result);
private List<RewardsBean> list;
public String execute() {
try {
Class.forName(DRIVER);
con = DriverManager.getConnection(CONSTR, USER, PWD);
for (RewardsBean rb : list) {
sql = "update rewards set tag=?,description=? where img_id=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, rb.getTag());
ps.setString(2, rb.getDesc());
ps.setInt(3, rb.getImg_id());
ps.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return SUCCESS;
}
/**
* @return the list
*/
public List<RewardsBean> getList() {
return list;
}
我的动作类是:
ActionProxy proxy=getActionProxy("/customize/saveRewards");
SaveRewardsPlus rewards=(SaveRewardsPlus)proxy.getAction();
request.setParameter("list[0].img_id", "1");
request.setParameter("list[0].tag", "Test Tag");
request.setParameter("list[0].desc", "Test Desc");
String result=proxy.execute();
assertEquals("success", result);
private List<RewardsBean> list;
public String execute() {
try {
Class.forName(DRIVER);
con = DriverManager.getConnection(CONSTR, USER, PWD);
for (RewardsBean rb : list) {
sql = "update rewards set tag=?,description=? where img_id=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, rb.getTag());
ps.setString(2, rb.getDesc());
ps.setInt(3, rb.getImg_id());
ps.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return SUCCESS;
}
/**
* @return the list
*/
public List<RewardsBean> getList() {
return list;
}
下面给出了我导入的xml文件……
<struts>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
<action name="addRewards" class="com.customize.rewards.AddRewards">
<result name="success">index.jsp</result>
</action>
</package>
<include file="addrewards/struts-addrewards.xml"></include>
<include file="customize/struts-customize.xml"></include>
</struts>
<struts>
<package name="customize" namespace="/customize" extends="struts-default">
<!--<action name="viewRewards" class="com.customize.rewards.ViewRewards">
<result>/customizeRewards/viewRewards.jsp</result>
</action> -->
<!-- New Rewards-->
<action name="viewRewards" class="com.customize.rewards.ViewRewards">
<result>/customizeRewards/viewRewardsPlus.jsp</result>
</action>
<action name="saveRewards" class="com.customize.rewards.SaveRewardsPlus">
<result name="success" type="redirect">viewRewards</result>
</action>
<!--/New Rewards-->
<!-- <action name="saveRewards" class="com.customize.rewards.SaveRewards">
<result name="success" type="redirect">viewRewards</result>
</action>-->
<action name="deleteRewards" class="com.customize.rewards.DeleteRewards">
<result name="success" type="redirect">viewRewards</result>
</action>
<action name="addRewards" class="com.customize.rewards.AddRewards">
<result name="success" type="redirect">viewRewards</result>
</action>
</package>
</struts>
您使用的是
junit4
,因此在本例中使用的正确测试用例类应该是StrutsJUnit4TestCase
。它具有运行代码所需的init mock对象启动时运行所需的注释。特定的获取操作代理需要模拟请求