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

如何使用MockMvc访问DispatcherServlet?

邬飞捷
2023-03-14

我有一个基本的SpringMVC应用程序,运行(和映射)很好。现在我想用MockMvc设置我的单元测试来执行get请求和其他东西。但如果我运行测试,则会出现断言错误状态:

以下是我的短期测试课程:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration
public class HomeControllerTest {

  private MockMvc mvc;
  @Autowired
  private WebApplicationContext wac;

  @Before
  public void setup() throws ServletException {
    mvc = MockMvcBuilders.webAppContextSetup(wac).build();
  }

  @Test
  public void testLandingPagePath() throws Exception {
    mvc.perform(get("/")).andExpect(status().isOk());
  }
}

所以我希望MockMvc在默认情况下获得DispatcherServlet的位置。但它实际上并不是用来映射的。

我的“web.xml”和“dispatcher servlet.xml”位于“web-INF”文件夹中,没有定义额外的配置。

我感觉问题是基于我的项目结构,但这是一个基本的eclipse“动态Web应用程序”,测试位于“src/test/java”中,与“src/main/java”平行。

我感谢任何帮助,因为我花了最后两个小时阅读解决方案,但没有得到诀窍。

共有1个答案

汝臻
2023-03-14

再过一段时间,我现在就明白了:我仍然无法访问dispatcher servlet。WEB-INF文件夹中的xml。我在测试包中添加了一个新的“config”包,与“controller”测试包并行,并放置了dispatcher servlet的副本。xml,称为“test dispatcher servlet.xml”。

我的类现在可以访问

@ContextConfiguration("../config/test-dispatcher-servlet.xml")
public class HomeControllerTest {

希望这可以帮助其他开始Springmvc测试的人:-)

 类似资料:
  • 我正在为一个控制器方法编写一个单元测试,该方法接受一个和一个自定义对象。到目前为止,我可以看到MultipartFile是请求的正确格式,但MessageAttachment不是。 通过解析,会抛出服务器端500错误,其中包含。 这似乎是一个问题,在测试中转换到MockMultipartFile消息附件。这类似于这里显示的示例-https://stackoverflow.com/a/2180518

  • 问题内容: 我正在使用Passport.js来实现对我的Node-App的登录。但是在我的应用程序中,我需要访问用户的ID,目前,我不知道如何实现此目的! 我该如何访问用户ID或自己将其发送到Cookie中? 问题答案: 您应该在策略的配置旁边,在您的应用中引入以下代码: 这样,当您通过身份验证的用户调用该函数时,password会负责将userId存储在cookie中。每当您要访问userId时

  • 我想访问此网页:https://www.google.com/trends/explore#q=ice在中心线图中筛选并提取数据。html文件是(在这里,我只粘贴我使用的部分): 并且我使用的数据存储在脚本部分(最后一行)。我的想法是先获取类“报告-内容”,然后选择脚本。我的代码如下: 打印“中心”类时,可以得到除“报表内容”之外的所有子类内容,打印“报表内容”时,结果只有: 我也尝试这样做: 但

  • 问题内容: 我需要访问以获得有关某个存储库的一些数据。以下命令很好用 现在,我需要调用相同的名称来操纵输出。这是我尝试过的代码, 当我调试代码时,它向我显示此错误, HttpResponseProxy {HTTP / 1.1 400错误的请求[服务器:GitHub.com,日期:2017年2月3日,星期五,格林尼治标准时间12:14:58,内容类型:application / json; char

  • 问题内容: 我有一个网页,其中iframe内有一个texarea。我需要从其子页面javascript读取此textarea的值。目前,通过在javascript中使用,我能够提取父页面中除iframe中的textarea之外的所有控件的值。 父页面中的框架ID和框架名称在运行时会更改,因此我们无法使用框架ID /框架名称作为参考。 问题答案: 如果您有HTML 和JavaScript 现在是对文

  • 问题内容: 我搞砸了SVG,希望能在Illustrator中创建SVG文件并使用Javascript访问元素。 这是Illustrator推出的SVG文件(它似乎也向我删除的文件的开头添加了一些垃圾) 正如您可能看到的那样,每个元素都有一个ID,我希望能够使用Javascript访问单个元素,以便我可以更改Fill属性并响应诸如click之类的事件。 HTML是基本的 我想这真的是两个问题。 与使