当前位置:  开发笔记 > 编程语言 > 正文

Spring Test MockMvc对外部URL执行请求

如何解决《SpringTestMockMvc对外部URL执行请求》经验,为你挑选了1个好方法。

我正在尝试在当前上下文之外的URL上执行POST请求,看起来Spring看起来无法理解它.

测试代码:

        String content = mvc
            .perform(post("http://some-external-url.com:8080/somepath)
                    .header("Authorization", authorization)
                    .contentType(MediaType.APPLICATION_FORM_URLENCODED)
                    .param("username", username)
                    .param("password", password)
            .andExpect(status().isOk())
            .andReturn().getResponse().getContentAsString();

就当前背景下的魅力而言.但是根本无法达到远程服务.似乎" http://some-external-url.com:8080 "部分被忽略了.

模拟创建代码:

mvc = MockMvcBuilders.webAppContextSetup(context).build();

有没有办法使它工作?因为使用标准的Java HttpUrlConnection类是一个巨大的痛苦.



1> Sam Brannen..:

没有.没有办法让Spring MVC测试框架与外部服务器(或任何实际的服务器)一起工作.

如Spring参考手册中所述,

Spring MVC Test框架提供了一流的支持,可以使用可以与JUnit,TestNG或任何其他测试框架一起使用的流畅API来测试Spring MVC代码.它建立在spring-test模块的Servlet API模拟对象之上,因此不使用正在运行的Servlet容器.

最后一句咒语出来:Spring MVC的测试并没有使用一个运行Servlet容器.实际上,它不能与正在运行的Servlet容器或任何类型的实际服务器(本地或远程)一起使用.

作为替代方案,如果你必须测试针对外部服务器上,然后你可以考虑使用放心,而不是Spring MVC的测试对于那些特殊情况.


仅供参考:我添加了关于REST Assured的说明.
推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有