问题标签 [spring-mvc-test]

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 投票
1 回答
148 浏览

spring-mvc - spring mvc servlet 3异步响应没有数据库结果测试

我正在我的新项目中测试新的 servlet 3 异步请求,并在测试控制器时卡住了。

我有一个这样的控制器方法:

以及这样的相应测试:

Repository and stuff 是一个简单的 spring data jpa bean,整个配置基于 spring boot。

如果我以正常方式查询控制器,一切正常,但在测试中,存储库不返回任何结果。

非常感谢您对此的帮助,我在网上找不到类似的东西。

0 投票
1 回答
2621 浏览

java - 从 JUnit 测试将数据注入会话

我需要运行一个 JUnit vs Spring MVC 测试用例,其中的先决条件包括某些数据存在于 HTTP 中Session。最重要的是我不能连接一个session-scoped bean:我必须访问httpServletContext.getSession().

在展示代码之前,让我解释一下。我需要测试的控制器假定某个数据存储在会话中,否则会引发异常。这是目前正确的行为,因为在没有会话的情况下永远不会调用该控制器,并且会话始终在登录时使用应用程序数据进行初始化。显然控制器处于安全状态。

在我的测试中,我只需要根据请求参数测试这个控制器是返回重定向还是 404 未找到。

我想建立我的测试用例,例如

部分代码是真正不言自明的。无论如何,我希望/common/navigate使用我存储在会话中的值。像这样

现在猜。当我运行我的代码时会发生什么?

RuntimeException 在我评论的行中抛出,因为在会话中找不到菜单对象

显然这个问题现在是隐含的,但我仍然会写它:如何将数据注入 Session 对象,以便被测控制器将它们作为前提条件可用?

0 投票
1 回答
438 浏览

spring-security - HDIV 配置在隐藏字段而不是 URL 中设置参数

我正在使用 Spring MVC 4.1.7.RELEASE 和 HDIV 2.1.11。我已将 HdivRequestDataValueProcessor 设置为拦截控制器代码中的内部重定向,如下所示。

这导致在 URL 中设置 HDIV 状态参数。在 HdivRequestDataValueProcessor 代码中,我看到它正在使用 LinkUrlProcessor 将 HDIV 状态作为请求参数写入重定向的 url。

有没有办法将 HDIV 配置为将此参数作为隐藏字段而不是在 url 中?

0 投票
2 回答
1159 浏览

java - Spring MVC 测试失败

我正在尝试运行 Spring MVC 测试,但不断收到此异常。

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

发生异常是因为自动装配的依赖,

没有在测试中注入(在测试之外工作正常)。

谁能帮我这个。这是我的代码:

//AccountControllerITest 类

}

//账户控制器

}

谢谢您的帮助!

0 投票
1 回答
5852 浏览

mongodb - 在春季数据mongo中将列表转换为页面?

我真的很难在春季数据中转换为 mongo 吗List<User> usersPage<User>注意Page是来自的 API org.springframework.data.domain.Page

我正在使用PaginationSpring Data Mongo,所以我需要发送Page<User>而不是List<User>.

如果我不想使用Page<>存储库方法,我们如何从列表中获取页面?

请帮我。

0 投票
1 回答
644 浏览

spring-mvc - BindingResult.getFieldValue() 在测试上下文中为格式化值返回 null

在 spring mvc 应用程序中,我提交 id 并使用格式化程序将该 id 转换为对象。它在容器中运行良好。

但是在单元测试环境中,我看到了一个问题。

我模拟格式化程序总是返回我的测试值,这很好,它被注入到 ModelAttribute 中。但是在 BindingResult 中,对 example 的调用result.getFieldValue("location")返回 null,但仅在 MockMvc 上下文中。

这是测试用例:

这是控制器的相对部分:

然后跳过一些项目,这是失败的相关验证,我location作为字段传递。

由于一定是错误,该对象无法验证。

如果我调试控制器,我观察到的是:

  1. 对象在 FormWrapper 中,属性在那里。
  2. 但是在 BindingResult 对象中,如果我调用 spring 验证代码中调用的 'getFieldValue('location')`,它会返回 null,因此验证器会拒绝该值。

所以由于某种原因,绑定结果没有注册格式化字段或其他东西。请注意,这只发生在单元测试中,而不是容器中。

有谁知道如何解决?

快速编辑:

我进行了更多调试,但在来自AbstractPropertyBindingResult. value直到调用conversionService 来转换它之前都可以。我没有下载该方法之外的源代码,因此我无法确切了解它失败的原因,但在convert方法中的某个地方,它正在从正确的值变为空值。我推测是因为我正在使用 MockObjects,也许它正在调用一些我没想到会返回值的东西。

0 投票
1 回答
844 浏览

grails - 是否可以直接在 grails 中使用 Spring MVC 测试,以及如何使用?

我们认为这Spring Rest Doc对于记录 rest api 非常有用。但它是基于Spring MVC Test,我们无法弄清楚如何Spring MVC Test在我的 grails 应用程序中使用(Grails 3.0.5)。

我尝试使用配置类(使用@Configurationand @ComponentScan)将 grails 组件扫描到测试上下文中,但似乎没有加载任何内容(当对 执行 http 请求时mockmvc,它得到 404)。

我还尝试直接配置 grails 控制器,但出现运行时错误。

无法自动装配字段:私有 reactor.bus.EventBus

我还尝试@Integration在测试类上添加(来自 grails),但收到了同样的错误。

请帮忙。

以下是一些代码示例。我尝试将配置类或类位置或 grails 控制器添加到下面测试类的 ContextConfiguration 中。并且测试类本身基本上遵循spring rest doc参考。

配置类(没有用):

0 投票
1 回答
873 浏览

spring-mvc - Spring @SqlGroup MetaAnnotation 不起作用

我正在尝试为一些集成测试设置元注释。这个测试工作正常。

然后我尝试创建一个元注释接口:

但是,当我使用替换 SqlGroup 的注释运行相同的方法时,它会失败,因为没有加载 sql 数据。

pom.xml的相关部分如下,spring.version为4.2.1.RELEASE。

有谁知道为什么没有使用元注释版本加载数据?

0 投票
2 回答
1211 浏览

spring - 调用 REST API 的 Spring MVC 控制器的错误单元测试

我在我的小应用程序中对 spring MVC 控制器进行单元测试,但出现以下错误:

其余控制器如下:

请参阅下面的 TestContext:

如前所述,应用程序可以正常工作,我可以读取通过浏览器返回的 json 并将其显示在我的 angularjs 视图中,但是单元测试不起作用。错误是 java.lang.AssertionError:预期状态:<200> 但原为:<204>。204 - 响应为空... 可能是 > 正在初始化 Spring FrameworkServlet ''即框架 servlet 未初始化?没有把握。任何帮助将不胜感激

我的休息控制器

@RestController 公共类 ItemRestController {

}

0 投票
6 回答
27623 浏览

java - 断言错误:JUnit 测试中的 JSON 路径没有值

我已经编写了一个测试并且它之前成功但现在我得到一个 AssertionError: No value for JSON Path。

我得到的错误是:

我不明白它没有得到什么或缺少什么。