Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ServletUnit测试JSP';s_Jsp_Servletunit - Fatal编程技术网

使用ServletUnit测试JSP';s

使用ServletUnit测试JSP';s,jsp,servletunit,Jsp,Servletunit,有人能给我举一个如何使用ServletUnit测试JSP的例子吗?我需要调用registerServlet()吗?如果是,我应该传递什么类名?如果要使用默认的Jasper编译器,则不需要注册Servlet。但是,我需要Jasper JAR及其对类路径的依赖关系。获取基本JSP以编译和呈现所需的Maven依赖项包括: <dependency> <groupId>tomcat</groupId> <artifactId>jasper</a

有人能给我举一个如何使用ServletUnit测试JSP的例子吗?我需要调用registerServlet()吗?如果是,我应该传递什么类名?

如果要使用默认的Jasper编译器,则不需要注册Servlet。但是,我需要Jasper JAR及其对类路径的依赖关系。获取基本JSP以编译和呈现所需的Maven依赖项包括:

<dependency>
  <groupId>tomcat</groupId>
  <artifactId>jasper</artifactId>
  <version>3.3.2</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>tomcat</groupId>
  <artifactId>jasper-compiler</artifactId>
  <version>5.5.23</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>tomcat</groupId>
  <artifactId>tomcat-util</artifactId>
  <version>5.5.23</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>tomcat</groupId>
  <artifactId>core_util</artifactId>
  <version>3.3.2</version>
  <scope>test</scope>
</dependency>

雄猫
贾斯珀
3.3.2
测试
雄猫
贾斯珀编译器
5.5.23
测试
雄猫
tomcat util
5.5.23
测试
雄猫
core_util
3.3.2
测试

我被困在一个JDK1.4项目中,因此您可以使用更新的版本。我还没有让标准的taglib工作…

这就是我现在用来测试JSP呈现和验证表单和转发的东西

第一个Maven依赖项

   <!--  Testing JSP -->
<dependency>
  <groupId>net.sourceforge.openutils</groupId>
  <artifactId>openutils-testing4web</artifactId>
  <version>1.2.1</version>
  <scope>test</scope>
  <exclusions>
    <exclusion>
      <artifactId>slf4j-log4j12</artifactId>
      <groupId>org.slf4j</groupId>
    </exclusion>
    <exclusion>
      <artifactId>spring-core</artifactId>
      <groupId>org.springframework</groupId>
    </exclusion>
    <exclusion>
      <artifactId>spring-context</artifactId>
      <groupId>org.springframework</groupId>
    </exclusion>
    <exclusion>
      <artifactId>slf4j-api</artifactId>
      <groupId>org.slf4j</groupId>
    </exclusion>
    <exclusion>
      <artifactId>jcl-over-slf4j</artifactId>
      <groupId>org.slf4j</groupId>
    </exclusion>
    <exclusion>
      <artifactId>jsp-api</artifactId>
      <groupId>javax.servlet</groupId>
    </exclusion>
    <exclusion>
      <artifactId>jasper-runtime</artifactId>
      <groupId>tomcat</groupId>
    </exclusion>
    <exclusion>
      <artifactId>jasper-compiler</artifactId>
      <groupId>tomcat</groupId>
    </exclusion>
    <exclusion>
      <artifactId>jasper-compiler-jdt</artifactId>
      <groupId>tomcat</groupId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>catalina</artifactId>
  <version>${tomcat.version}</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>servlet-api</artifactId>
  <version>${tomcat.version}</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>jasper</artifactId>
  <version>${tomcat.version}</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>jasper-el</artifactId>
  <version>${tomcat.version}</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>jsp-api</artifactId>
  <version>${tomcat.version}</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>${javax.servlet.version}</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>jasper-jdt</artifactId>
  <version>6.0.29</version>
  <scope>test</scope>
</dependency>
<!-- log configuration -->
如果您想从Spring Junit上下文运行@ContextConfiguration、@TestExecutionListeners,则需要@ContextConfiguration、@TestExecutionListeners,如果删除,则会得到一个很好的java.lang.IllegalStateException:Failed to load ApplicationNext

注意,这里我使用Web.xml实例化了ServletRunner。这是强制性的,当然,非常类似于我的生产之一。第二个参数contextPath设置为Null。对于我的测试,我不需要。我建议您参考更完整的信息

一旦配置好了,就可以轻松地进行测试。我再举几个例子:

PostMethodWebRequest webRequest = new PostMethodWebRequest("http://myserver/setup/checkXML",true);
  webRequest.setParameter("param1", "11112");
  File file = new File("src/test/resources/datasets/myxml.xml");
  webRequest.selectFile("fileData",file,"multipart/form-data");

  WebResponse webResponse = servletRunner.getResponse(webRequest);

  assertNotNull(webResponse);
  assertTrue(webResponse.getURL().getPath().contains("checkXML"));
  assertNotNull(webResponse.getElementsByTagName("resultCheck"));
  log.debug(" ----------------- ");
  log.debug(webResponse.getText());
  log.debug(" ----------------- ");
  webResponse.getFormWithID("resultsForm").getSubmitButtons()[0].click();
在这个例子中,我将上传一个文件。您需要创建参数mimeencoded设置为true的PostMethodWebRequest。如果没有,您将收到一些有趣的错误消息。 对于添加文件,仅使用方法。您可以在API中看到您可以上载一个文件或一组文件

最后一个示例仅适用于make-Get请求

 GetMethodWebRequest webRequest = new GetMethodWebRequest("http://myserver/setup/addarea");
  webRequest.setParameter("param", "11");

  WebResponse webResponse = servletRunner.getResponse(webRequest);

  assertNotNull(webResponse);
  assertTrue(webResponse.getURL().getPath().contains("addsomething"));
  assertNotNull(webResponse.getElementsByTagName("listofsomething"));
  assertNotNull(webResponse.getElementsByTagName("someelement"));
  log.debug(" ----------------- ");
  log.debug(webResponse.getText());
  log.debug(" ----------------- ");
在本例中,我向控制器发出Get请求。与上一节一样,我发送一些参数,然后得到响应。在那里,我检查URL是否符合我的预期,并验证JSP是否呈现了一些元素

请注意,对于构建WebRequest,我必须使用格式良好的URL,但服务器名称没有问题,Servlet单元根本不使用它,您不需要在任何地方定义它

我希望它能帮助你。玩得开心

 GetMethodWebRequest webRequest = new GetMethodWebRequest("http://myserver/setup/addarea");
  webRequest.setParameter("param", "11");

  WebResponse webResponse = servletRunner.getResponse(webRequest);

  assertNotNull(webResponse);
  assertTrue(webResponse.getURL().getPath().contains("addsomething"));
  assertNotNull(webResponse.getElementsByTagName("listofsomething"));
  assertNotNull(webResponse.getElementsByTagName("someelement"));
  log.debug(" ----------------- ");
  log.debug(webResponse.getText());
  log.debug(" ----------------- ");