You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cactus-user@jakarta.apache.org by Barbara Allori <ba...@akros.it> on 2004/01/29 16:32:16 UTC
Cactus and HttpUnit
Hi,
I'm try to testing my jsp using cactus end httpUnit.
I write test like this:
public class testClass extends ServletTestCase {
.....
public void testTest1() throws ServletException, IOException {
....
bean bean = new bean();
bean.setRuoloUtente(entitaRuolo);
session.setAttribute("xyz",bean);
RequestDispatcher rd
=
config.getServletContext().getRequestDispatcher("/jsp/test.jsp");
rd.include(request,response);
}
public void endTest1(WebResponse response) {
assertEquals("OK",response.getResponseMessage());
try {
WebForm form = response.getFormWithName("Form");
....
} catch (SAXException e) {
....
}
}
}
and when I run it, I catch this exception:
java.lang.NullPointerException
at com.meterware.httpunit.ParsedHTML.getIncludedScript(ParsedHTML.java:305)
at com.meterware.httpunit.ParsedHTML.getScript(ParsedHTML.java:289)
at
com.meterware.httpunit.ParsedHTML.interpretScriptElement(ParsedHTML.java:269)
at com.meterware.httpunit.ParsedHTML.access$600(ParsedHTML.java:37)
at
com.meterware.httpunit.ParsedHTML$ScriptFactory.recordElement(ParsedHTML.java:404)
at com.meterware.httpunit.ParsedHTML$2.processElement(ParsedHTML.java:556)
at
com.meterware.httpunit.NodeUtils$PreOrderTraversal.perform(NodeUtils.java:169)
at com.meterware.httpunit.ParsedHTML.loadElements(ParsedHTML.java:566)
at com.meterware.httpunit.ParsedHTML.getForms(ParsedHTML.java:101)
at com.meterware.httpunit.ParsedHTML.getFirstMatchingForm(ParsedHTML.java:239)
at com.meterware.httpunit.ParsedHTML.getFormWithName(ParsedHTML.java:264)
at com.meterware.httpunit.WebResponse.getFormWithName(WebResponse.java:320)
I use:
cactus 1.4.1
httpunit 1.5.4
junit 3.8.1
This is my classpath:
SET CLASSPATH=%CLASSPATH%;%HTTP_UNIT%\lib\httpunit.jar
SET CLASSPATH=%CLASSPATH%;%HTTP_UNIT%\jars\nekohtml.jar
SET CLASSPATH=%CLASSPATH%;%HTTP_UNIT%\jars\js.jar
SET CLASSPATH=%CLASSPATH%;%CACTUS_HOME%\lib\catalina-ant.jar
SET CLASSPATH=%CLASSPATH%;%CACTUS_HOME%\lib\commons-logging-1.0.jar
SET CLASSPATH=%CLASSPATH%;%JUNIT%\junit.jar
SET CLASSPATH=%CLASSPATH%;%ANT_HOME%\lib\optional.jar
SET CLASSPATH=%CLASSPATH%;%ANT_HOME%\lib\ant.jar
SET CLASSPATH=%CLASSPATH%;%ANT_HOME%\lib\xalan-2.3.1.jar
SET CLASSPATH=%CLASSPATH%;%ANT_HOME%\lib\xercesImpl.jar
SET CLASSPATH=%CLASSPATH%;%JAVA_HOME%\lib\tools.jar
SET CLASSPATH=%CLASSPATH%;%JAVA_HOME%\lib\cactus-1.4.1.jar
SET CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%\server\lib\catalina-ant.jar
Where I wrong? Can anyone help me?
Thanks,
Barbara
P.S.
Excuse me for my bad english!
Re: Cactus and HttpUnit
Posted by Charles Hayes <Ch...@Sun.COM>.
I think the error log is pretty explicit about the problem in this case.
There is no form whose name is "Form" as you stated in this line:
WebForm form = response.getFormWithName("Form");
The form's name attribute should match whatever you pass into the
getFormWithName method.
Charles
Barbara Allori wrote:
> Hi,
> I'm try to testing my jsp using cactus end httpUnit.
>
> I write test like this:
>
> public class testClass extends ServletTestCase {
> .....
>
> public void testTest1() throws ServletException, IOException {
> ....
> bean bean = new bean();
> bean.setRuoloUtente(entitaRuolo);
> session.setAttribute("xyz",bean);
>
> RequestDispatcher rd =
> config.getServletContext().getRequestDispatcher("/jsp/test.jsp");
> rd.include(request,response);
>
> }
> public void endTest1(WebResponse response) {
>
> assertEquals("OK",response.getResponseMessage());
> try {
>
> WebForm form = response.getFormWithName("Form");
> ....
>
> } catch (SAXException e) {
> ....
> }
> }
> }
>
> and when I run it, I catch this exception:
>
> java.lang.NullPointerException
> at
> com.meterware.httpunit.ParsedHTML.getIncludedScript(ParsedHTML.java:305)
> at com.meterware.httpunit.ParsedHTML.getScript(ParsedHTML.java:289)
> at
> com.meterware.httpunit.ParsedHTML.interpretScriptElement(ParsedHTML.java:269)
>
> at com.meterware.httpunit.ParsedHTML.access$600(ParsedHTML.java:37)
> at
> com.meterware.httpunit.ParsedHTML$ScriptFactory.recordElement(ParsedHTML.java:404)
>
> at
> com.meterware.httpunit.ParsedHTML$2.processElement(ParsedHTML.java:556)
> at
> com.meterware.httpunit.NodeUtils$PreOrderTraversal.perform(NodeUtils.java:169)
>
> at com.meterware.httpunit.ParsedHTML.loadElements(ParsedHTML.java:566)
> at com.meterware.httpunit.ParsedHTML.getForms(ParsedHTML.java:101)
> at
> com.meterware.httpunit.ParsedHTML.getFirstMatchingForm(ParsedHTML.java:239)
>
> at com.meterware.httpunit.ParsedHTML.getFormWithName(ParsedHTML.java:264)
> at
> com.meterware.httpunit.WebResponse.getFormWithName(WebResponse.java:320)
>
>
> I use:
>
> cactus 1.4.1
> httpunit 1.5.4
> junit 3.8.1
>
> This is my classpath:
>
>
> SET CLASSPATH=%CLASSPATH%;%HTTP_UNIT%\lib\httpunit.jar
> SET CLASSPATH=%CLASSPATH%;%HTTP_UNIT%\jars\nekohtml.jar
> SET CLASSPATH=%CLASSPATH%;%HTTP_UNIT%\jars\js.jar
> SET CLASSPATH=%CLASSPATH%;%CACTUS_HOME%\lib\catalina-ant.jar
> SET CLASSPATH=%CLASSPATH%;%CACTUS_HOME%\lib\commons-logging-1.0.jar
> SET CLASSPATH=%CLASSPATH%;%JUNIT%\junit.jar
> SET CLASSPATH=%CLASSPATH%;%ANT_HOME%\lib\optional.jar
> SET CLASSPATH=%CLASSPATH%;%ANT_HOME%\lib\ant.jar
> SET CLASSPATH=%CLASSPATH%;%ANT_HOME%\lib\xalan-2.3.1.jar
> SET CLASSPATH=%CLASSPATH%;%ANT_HOME%\lib\xercesImpl.jar
> SET CLASSPATH=%CLASSPATH%;%JAVA_HOME%\lib\tools.jar
> SET CLASSPATH=%CLASSPATH%;%JAVA_HOME%\lib\cactus-1.4.1.jar
> SET CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%\server\lib\catalina-ant.jar
>
> Where I wrong? Can anyone help me?
>
> Thanks,
> Barbara
>
> P.S.
> Excuse me for my bad english!
>
>
>