论坛首页 Java企业应用论坛

在Struts1.1中,如何将DynaActionForm放入到JUnit的TestCase...

浏览 4338 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-04-11  
今天我写TestCase的时候出现了这样的问题:
public class LoginTest extends TestCase
{
    public void testLogin();
    {
        DynaActionForm form = new DynaActionForm();;
        form.set("user", "admin");; //实际运行的时候抛NullPointerException
        form.set("pass", "123");;
        boolean flag = (new Manager(););.login(form);;//business layer 
    }
}


结果出现
java.lang.NullPointerException
	at org.apache.struts.action.DynaActionForm.getDynaProperty(DynaActionForm.java:596);
	at org.apache.struts.action.DynaActionForm.set(DynaActionForm.java:412);


请问我如何才能在TestCase中构造DynaActionForm 对象呢?万分谢谢!
   发表时间:2005-04-11  
刚才想了想,觉得不应该把表现层的对象放到business layer中处理,而是在aciton中就直接想form的数据导入到BusinessObject中就可以避免在TestCase中出现这个问题了。
0 请登录后投票
   发表时间:2005-04-14  
web框架下的测试不能直接在TestCase中调用吧,因为DynaActionForm需要struts框架的支持,必须在内存中载入struts,然后才能使用那些依赖框架的方法。不过可是试试Mock测试工具
0 请登录后投票
   发表时间:2005-04-14  
cbcivp 写道
今天我写TestCase的时候出现了这样的问题:
public class LoginTest extends TestCase
{
    public void testLogin();
    {
        DynaActionForm form = new DynaActionForm();;
        form.set("user", "admin");; //实际运行的时候抛NullPointerException
        form.set("pass", "123");;
        boolean flag = (new Manager(););.login(form);;//business layer 
    }
}


结果出现
java.lang.NullPointerException
	at org.apache.struts.action.DynaActionForm.getDynaProperty(DynaActionForm.java:596);
	at org.apache.struts.action.DynaActionForm.set(DynaActionForm.java:412);


请问我如何才能在TestCase中构造DynaActionForm 对象呢?万分谢谢!


因為 DynaActionFrom 是 extends DynaBean, 必須設定 DynaProperty, 所以我建議你乾脆使用
org.apache.commons.beanutils.WrapDynaBean 比較簡單
LoginVO loginVO = new LoginVO("admin","123"); // POJO javaBeans
DynaBean form = new WrapDynaBean(loginVO);

傳入 form , it should be ok
0 请登录后投票
   发表时间:2005-04-21  
你可以使用strustTest和http Unit这样的测试框架对strust进行测试
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics