问题标签 [mockmvc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3218 浏览

java - Spring MVC 图片上传集成测试使用 Mockmvc 和 JSON 失败

我试图使用我的测试类上传图像。我正在使用 JSON 使用 mockmvc 发送数据。我正在尝试将图像从我的 PC 添加到 JSON。我正在使用图像的链接将其添加到 JSON。下面我给出了我的测试部分:

这是控制器部分:

但是,出事了。我的控制台输出如下:

我假设将我的图像添加到 JSON 时存在问题。谁能告诉我如何解决这个问题?

0 投票
2 回答
2353 浏览

java - RESTful webservice与spring mvc的图片上传集成测试

将图像上传到服务器时如何编写集成测试。我已经在这个 问题之后编写了一个测试并且它的答案,但我的工作不正常。我使用 JSON 发送图像和预期状态 OK。但我得到:

org.springframework.web.utill.NestedServletException:请求处理失败;嵌套异常是 java.lang.illigulArgument

或http状态400或415。我猜意思是一样的。下面我给出了我的测试部分和控制器类部分。

测试部分:

控制器部分:

如果我以这种方式编写控制器,它将在 Junit 跟踪中显示 IllegalArgument,但在控制台中没有问题,也没有模拟打印。所以,我用这个替换控制器:

比我在控制台中有这个输出:

现在,我需要知道如何解决这个问题,或者我应该采取另一种方法,那是什么。

0 投票
4 回答
16729 浏览

java - 使用 MockMvc 在 Spring MVC 中进行单元测试/登录

我有一个使用 Spring MVC 创建的非常简单的 REST 应用程序。(代码在GitHub 上可用。)它有一个简单WebSecurityConfigurer的如下:

当我运行应用程序时,自定义控制器和登录/注销页面都可以正常工作。我什 /user/new可以通过MockMvc. 但是,当我尝试/login使用以下功能进行测试时

它失败如下:

但是当我运行应用程序而不是测试时,我很喜欢工作POST/login此外,当我尝试发出GETHEAD请求(如Headers = {Allow=[HEAD, GET]}日志行中的建议)时,这次我收到 404。关于发生了什么以及如何解决它的任何想法?

0 投票
2 回答
26838 浏览

java - 使用 Spring mvc 和 MockMVC 上传文件

我已成功将图像文件上传到WebContent\resources\uploads\image.jsp. 但是我在使用 MockMvc 进行测试时遇到了问题。当我运行测试用例时,我得到了异常文件 not foundaccess denied

控制器如下所示:

我的测试用例是这样的:

我的jsp文件是这样的:

0 投票
1 回答
1136 浏览

spring-boot - Spring Boot、MockMVC 和 MessageSource

所以这是一个非常基本的 spring-boot 项目,只有 6 个类。

https://github.com/paranoiabla/spring-boot-mockmvc

设置非常基本,只有一个测试用例失败。我得到的例外是

我相信这是因为SpringApplicationContextLoaderline 255, 方法通过调用只接受路径的构造函数来addMockServletContext创建 a 。MockServletContext结果,内部使用MockServletContext初始化ResourceLoaderDefaultResourceLoader它将在类路径中查找资源。这样,如果我有一个ReloadableResourceMessageResolver并且我的属性文件在/WEB-INF/messages/base.properties其中,它将永远找不到它们,因为它/WEB-INF/messages/base.properties被转换为src/main/webapp/WEB-INF/messages/base.properties在类路径中找不到的ReloadableMessageSourceResolver. 我认为在创建时MockServletContext应该能够显式传递FileSystemResourceLoader,对吗?

0 投票
2 回答
4243 浏览

exception-handling - Mockito 期待异常

我正在尝试使用 Mockito 和 Junit 测试以下方法:

这是方法测试:

打印堆栈:

这是可行的,但是当我尝试捕获此方法引发的文本或异常时,
添加 @Test (expected= java.lang.NullPointerException.class) 我有这个错误:

java.lang.AssertionError:预期异常:java.lang.NullPointerException

当我尝试将 nullPointerException Text 作为 ModelAndView 部分的属性(异常)的值时,我收到此错误:

java.lang.AssertionError:预期模型属性“异常”:java.lang.NullPointerException 但为:java.lang.NullPointerException

有没有办法使用mockito(mockmvc)期望抛出异常或值属性(value = java.lang.NullPointerException)或Resolved Exception部分中的文本?

任何帮助都感激不尽

0 投票
0 回答
870 浏览

java - MockMvc POST Junit 测试返回 HttpMessageNotReadableException

目前使用 MockMVC 编写单元测试以测试我的控制器。控制器本身工作正常,但我正在努力创建一个测试来证明这一点。

下面我创建了一个简化的示例来重新创建问题。

我的控制器

我的测试

当测试运行时,我会收到 400 http 响应。您可以提供的任何见解都会有所帮助,谢谢。

0 投票
1 回答
1317 浏览

spring - MockMvc 和用户主体

我尝试测试注入 UserPrincipal 的 mvcControllers 的访问权限:

restPockMockMvc .perform(get("/pocs").principal(authToken)) .andReturn();

这是我尝试测试的控制器的方法:

@PreAuthorize(value = "hasRole('AK_ADMIN')") @RequestMapping(method = RequestMethod.GET,produces = "application/json; charset=utf-8") public PagedResources collectionList(HttpServletRequest httpServletRequest){ ..... .......}

httpServletRequest.getUserPrincipal() 始终为空,而我注入 userPrincipal 但我不明白为什么......

欢迎您的帮助。谢谢

0 投票
0 回答
460 浏览

java - WebMvcConfigurationSupport 覆盖使 MockMVC 测试中的 ModelAndView 为空

在尝试让我的 PUT MockMvc 测试工作时,我发现 JSON 不受支持。使用此线程的答案: 配置 MappingJacksonHttpMessageConverter

我能够通过扩展 WebMvcConfigurationSupport 类来解决这个问题。但是,当我使用此覆盖时,看起来好像在我的 GET 测试中返回的 ModelAndView 数据现在为 NULL。我知道我可以使用以下方法获取响应数据:

但是,有没有人解释为什么 ModelAndView 数据为 NULL?

这是我的 MockMVC 测试类:

0 投票
0 回答
3417 浏览

spring - Spring mockmvc 测试和拦截器

我最初实现了一个控制器来处理 OPTIONS 请求并将 CORS 所需的标头应用于响应。最近我一直在清理代码并为 CORS 的东西创建了一个拦截器。该清理的一部分是删除 OPTIONS 请求的控制器方法。

但是,我的 mockmvc 测试需要 OPTIONS 处理方法,而当我实际运行应用程序时,拦截器链会处理 OPTIONS 请求,即使 OPTIONS 请求没有控制器方法也是如此。

我期待这样的测试

如果我的测试设置有通过

或者我希望我不会看到跨源请求在正在运行的应用程序上工作。