求助:谁能给我一份有关基于Struts的Web应用测试的用例
急需,谢谢你用junit做
你用junit做举个例子
//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());
}
}
}
非常谢谢楼上的,又出现问题请教!!!!
楼上的:你好!非常谢谢你,这种方法能测系统中的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
我现在非常急解决这个问题,!请知道者帮帮我,能否尽量详细点说明解决方法,谢谢各位高手了。
点击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
你的action没执行
你的action好象没执行,错误显示初始化sevelet,对象没找到,一种是你的字符没传过去,一种是,环境对象没找到,你先检查看看你的lib库是不是所有都在运行的path h 环境中了。你的actionPerform();执行的是哪个action,具体的要模拟环境来看了。
谢楼上,再请教!
你所说的"lib库是不是所有都在运行的path h 环境中了"的这句话,是不是要在系统的高级环境变量中设置于呢,还是只要在MYeclipse集成环境中添加外部库文件.请问能否具体指点如何设?????!!!actionPerform()是模型loginAction啊,因为setRequestPathInfo("/login");这条语句也就是说模拟LoginAction的.
ba
把你需要的.jar类包都加到 myeclipse的path中。看看你是直接用myeclipse运行的吧
页:
[1]