@WebAppConfiguration如何在没有servlet或应用程序容器的情况下工作?

时间:2019-07-07 05:48:05

标签: spring-test

我正在使用Spring 4和Testng。当我根本没有安装像tomcat这样的servlet容器时,@ WebAppConfiguration如何无错误地加载WebApplicationContext和servlet。在这种情况下是否可以通过url访问servlet,或者必须安装Web服务器?

1 个答案:

答案 0 :(得分:0)

您不需要安装真正的servlet容器。您可以认为#include <iostream> int main() { std::cout << "Enter the number of rows for the pattern: "; unsigned int numberOfRows{ 0 }; std::cin >> numberOfRows; // Number of columns is always number of rows * 2 + 1 unsigned int numberOfColumns{ numberOfRows * 2 + 1 }; unsigned int positionOfDash{ 1 }; // Print the pattern for (unsigned int row = 0; row < numberOfRows; ++row) { for (unsigned int col = 0; col < numberOfColumns; ++col) { // Output dash in desired column or else star std::cout << (col == positionOfDash ? '-' : '*') << ' '; } positionOfDash += 2; std::cout << '\n'; } return 0; } 创建的servlet容器只是一个基于内存的虚假servlet容器,而不是像Tomcat这样的真实容器。它只能通过以编程方式调用其方法来工作,而不能由URL调用。

这个假Servlet容器的实际实现由@WebAppConfigurationMockServletContextMockHttpServletRequestMockHttpServletResponseMockHttpSession等组成。

这个想法是要测试MockServletConfig,我们首先通过设置HttpServlet的相关状态来配置HTTP请求,然后以编程方式调用受测试的MockHttpServletRequest并验证结果来自HttpServlet

MockHttpServletResponse

有关更多详细信息,请参见docs