liuxhsl 发表于 2006-6-1 13:39:41

求助:谁能给我一份有关基于Struts的Web应用测试的用例

急需,谢谢

century 发表于 2006-6-1 18:01:37

你用junit做

你用junit做

century 发表于 2006-6-1 18:10:10

举个例子

//junit java包
import junit.framework.*;

/**
*
* @草莓junit例子,建立在netbean5.0
*/
//扩展测试用例类
public class MainTest extends TestCase {
   
    public MainTest(String testName) {
      super(testName);
    }
 //初始化


    protected void setUp() throws Exception {
    }

    protected void tearDown() throws Exception {
    }
 //建立测试包
    public static Test suite() {
      TestSuite suite = new TestSuite(MainTest.class);
      
      return suite;
    }

    /**
   * 测试main方法
   */
    public void testMain() {
      System.out.println("main");
      
      String[] args = null;
      
      try{
      Main.main(args);
      }catch(Exception e){
      
      // TODO review the generated test code and remove the default call to fail.
      fail("T测试失败!"+e.toString());
      }
      //good("测试成功!");
    }

    /**
   * 测试函数GetTestStr().
   */
    public void testGetTestStr() {
      System.out.println("正测试getTestStr函数:");
      
      String inputStr = "草莓";
      String expResult = "草莓";
      String result = Main.getTestStr(inputStr);
       try{
  //比较
      assertEquals(expResult, result);
       }
       catch(Exception e){
      fail("测试失败."+e.toString());
       }
      
      
      
      
    }
   
}

liuxhsl 发表于 2006-6-3 15:28:19

非常谢谢楼上的,又出现问题请教!!!!

楼上的:
你好!非常谢谢你,这种方法能测系统中的JAVABean.现在我要用STRUSTTESTCASE来测试有关STRUTS中的forward、mapping、Action及ACTIONForm.我按着STRUSTTESTCASE网站提供的例子总是实现不了。比如说我有点Loginaction,我测这个LoginAction的类为TestLoginAction.java,然后点运行——运行junit总是提示failure,提示一大堆错但我不明白怎么解决。我的TestLoginAction.java的代码如下,用的是MyEclipse编程环境:
package com.lxh.struts.action;

import servletunit.struts.MockStrutsTestCase;

public class TestLoginAction extends MockStrutsTestCase {

    public TestLoginAction(String testName) {
      super(testName);
    }

    public void setUp() throws Exception {
      super.setUp();
    }

    public void testSuccessfulLogin() {

            setRequestPathInfo("/login");
            System.out.println("hello!");
            addRequestParameter("username","lxh");
            System.out.print("welcome1");
      addRequestParameter("password","123");
      System.out.print("welcome2");
      actionPerform();
       System.out.print("welcome3");
      verifyForward("success");
       assertEquals("lxh",request.getAttribute("username"));
      //verifyForwardPath("/success.jsp");
       // assertEquals("deryl",getSession().getAttribute("authentication"));
      //verifyNoActionErrors();
    }
public static void main(String[] args) {
      junit.textui.TestRunner.run(TestLoginAction.class);
    }

}
点击右键run As——Junit Test,运行结果后:只会输出hello!、welcome1、welcome2
我现在非常急解决这个问题,!请知道者帮帮我,能否尽量详细点说明解决方法,谢谢各位高手了。

liuxhsl 发表于 2006-6-3 15:45:36

点击run as---junit test运行后提示的问题如下

hello!
welcome1welcome22006-6-3 15:36:58 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
2006-6-3 15:36:58 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
2006-6-3 15:36:58 org.apache.struts.action.ActionServlet initServlet
严重: null
java.lang.NullPointerException
        at org.apache.crimson.parser.Parser2.parseInternal(Unknown Source)
        at org.apache.crimson.parser.Parser2.parse(Unknown Source)
        at org.apache.crimson.parser.XMLReaderImpl.parse(Unknown Source)
        at org.apache.commons.digester.Digester.parse(Digester.java:1567)
        at org.apache.struts.action.ActionServlet.initServlet(ActionServlet.java:1433)
        at org.apache.struts.action.ActionServlet.init(ActionServlet.java:466)
        at javax.servlet.GenericServlet.init(GenericServlet.java:211)
        at servletunit.struts.MockStrutsTestCase.getActionServlet(MockStrutsTestCase.java:226)
        at servletunit.struts.MockStrutsTestCase.actionPerform(MockStrutsTestCase.java:290)
        at com.lxh.struts.action.TestLoginAction.testSuccessfulLogin(TestLoginAction.java:23)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
2006-6-3 15:36:58 servletunit.struts.MockStrutsTestCase getActionServlet
严重: Error initializing action servlet
javax.servlet.ServletException: java.lang.NullPointerException
        at org.apache.struts.action.ActionServlet.initServlet(ActionServlet.java:1441)
        at org.apache.struts.action.ActionServlet.init(ActionServlet.java:466)
        at javax.servlet.GenericServlet.init(GenericServlet.java:211)
        at servletunit.struts.MockStrutsTestCase.getActionServlet(MockStrutsTestCase.java:226)
        at servletunit.struts.MockStrutsTestCase.actionPerform(MockStrutsTestCase.java:290)
        at com.lxh.struts.action.TestLoginAction.testSuccessfulLogin(TestLoginAction.java:23)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
2006-6-3 15:36:58 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
2006-6-3 15:36:58 org.apache.struts.action.ActionServlet initServlet

century 发表于 2006-6-3 16:59:36

你的action没执行

你的action好象没执行,错误显示初始化sevelet,对象没找到,一种是你的字符没传过去,一种是,环境对象没找到,你先检查看看你的lib库是不是所有都在运行的path   h 环境中了。
   你的actionPerform();执行的是哪个action,具体的要模拟环境来看了。

liuxhsl 发表于 2006-6-4 11:02:51

谢楼上,再请教!

你所说的"lib库是不是所有都在运行的path   h 环境中了"的这句话,是不是要在系统的高级环境变量中设置于呢,还是只要在MYeclipse集成环境中添加外部库文件.请问能否具体指点如何设?????!!!
actionPerform()是模型loginAction啊,因为setRequestPathInfo("/login");这条语句也就是说模拟LoginAction的.

century 发表于 2006-6-5 09:48:36

ba

把你需要的.jar类包都加到 myeclipse的path中。看看你是直接用myeclipse运行的吧
页: [1]
查看完整版本: 求助:谁能给我一份有关基于Struts的Web应用测试的用例