当前位置: 首页 > 知识库问答 >
问题:

HttpServlet的测试套件

洪和风
2023-03-14

今天,我试图为HttpServlet编写测试用例。在网络上。xml I使用param name和param value定义了一个init参数。我使用了JUnit测试用例。

通过调用这行代码:

public void init() throws ServletException {
    downloadPath = getServletContext().getRealPath(getInitParameter("downloadPath"));
}

并且将抛出异常:

java.lang.IllegalStateException: ServletConfig has not been initialized
at javax.servlet.GenericServlet.getServletContext(GenericServlet.java:185)
at com.example.servlet.DownloadServlet.init(DownloadServlet.java:30)

我想是因为这些东西没有在Web容器中运行。令我惊讶的是,我找不到支持HttpServlet的测试套件。我找到了Apache仙人掌的StrutsTestCase或ServletTestCase。

我可以用这个测试套件编写servlet测试用例吗?我可以使用Mockito包装ServletConfig吗?

共有1个答案

郁明诚
2023-03-14

您会注意到init()方法是在GenericServlet类中声明的。它的存在是为了让子类覆盖它而不是init(ServletConfig)方法。

Servlet容器将调用Servlet#init(ServletConfig)方法(该方法委托给HttpServlet子类中的init())。

因此,您可以使用您最喜欢的模拟框架(Mockito、EasyMock等)模拟servlet配置,并将其作为参数传递给init(servlet配置)方法。

 类似资料:
  • 主要内容:1. 测试类,2. testng.xml,其他例子测试套件是用于测试软件程序的行为或一组行为的测试用例的集合。 在TestNG中,我们无法在测试源代码中定义一个套件,但它可以由一个XML文件表示,因为套件是执行的功能。 它还允许灵活配置要运行的测试。 套件可以包含一个或多个测试,并由标记定义。 是的根标记。 它描述了一个测试套件,它又由几个部分组成。 下表列出了接受的所有定义的合法属性。 属性 描述 name 套件的名称,这是一个强制属性。 ve

  • 主要内容:1 概述,2 创建简单的Maven项目,3 项目包装结构,4 更新pom.xml文件中的JUnit依赖关系,5 创建LoginService.java和LoginServiceTest.java,,6.创建UserService.java和UserServiceTest.java,7 创建测试套件,8 结论1 概述 在本指南中,我们将学习如何一次运行多个测试类。将Suite用作运行程序可以使您手动构建一个包含许多类测试的套件。它等效于JUnit 3.8.x静态Test suite()方

  • 测试套件是测试的集合。通常会在一个测试套件将所有的测试作为一个连续的批处理作业运行。 Selenium IDE 可以用一个简单的 HTML 文件来定义测试套件。语法也很简单。一个 HTML 表格定义了一个测试列表,其中的每一行定义了每个测试文件的路径。举个例子: <html> <head> <title>Test Suite Function Tests - Priority 1</title>

  • 测试 oil test(或 oil t)命令运行与你的 web app、模组和套件相关的 PHPUnit 测试。关于 FuelPHP 单元测试的完整文件可以在 单元测试 文件页面找到,而关于 PHPUnit 的完整文件可以在 PHPUnit 网站找到。 配置 Oil 实用工具本身不需要太多配置,但如果在你机器上的 PHPUnit 实例不是全域安装(例如,如果你使用 Composer 安装 PHPU

  • 问题内容: 如何使用JUnit 4创建测试套件? 我看过的所有文档似乎都不适合我。而且,如果我使用Eclipse向导,它不会为我提供选择已创建的任何测试类的选项。 问题答案:

  • Test suite用于捆绑一些单元测试用例并将它们一起运行。 在JUnit中, @RunWith和@Suite注释都用于运行套件测试。 本章以两个测试类TestJunit1和TestJunit2 ,它们使用Test Suite一起运行。 创建一个类 (Create a Class) 在C:\“JUNIT_WORKSPACE中创建一个要测试的java类,比如MessageUtil.java 。 /