问题标签 [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 回答
2512 浏览

spring - Spring 集成测试问题:无法初始化代理 - 没有通过引用链的会话:

我正在尝试测试控制器方法,但我遇到了一个可能与延迟加载有关的问题,因此我试图在视图过滤器中为我的测试设置一个开放的实体管理器。

设置方法:

测试方法:

对象映射器:

异常堆栈跟踪:

似乎 Spring Mvc Test 忽略了第二个过滤器,我仍然收到休眠错误...有人可以帮忙吗?

0 投票
1 回答
2728 浏览

spring - 用于以编程方式创建的 WebApplicationContext 的 Spring MockMVC

我想使用 springs MockMVC 工具编写集成测试:

阅读可用文档http://docs.spring.io/spring/docs/current/spring-framework-reference/html/testing.html#spring-mvc-test-framework留下一个问题:如何设置测试对于以编程方式创建的 WebApplicationContext?

如果我正确理解了模拟 mvc 测试的概念,它会神奇地发现一个 servlet 上下文,其中包含调度程序 servlet 和一个用于设置的 WebApplicationContext。目前,我手动创建 WebApplicationContext 并将 DispatcherServlet 添加到码头实例。我想我必须以某种方式解耦?

我想使用 SpringWebConfiguration.class 中定义的 Web 上下文并模拟 SpringConfiguration.class 中定义的根上下文中的所有内容

知道如何更改配置才能使用 mockmvc 测试吗?我更喜欢没有 spring.xml / web.xml 的解决方案。

0 投票
1 回答
883 浏览

spring - Spring Junit 控制器模拟不工作

我有以下控制器,我想对其进行 Junit 测试,

JUnit 方法如下所示:

principalMock 声明如下:

问题是我在主体上调用 getName() 方法时在这一行得到 NullPointerException。

0 投票
0 回答
1173 浏览

spring - 问题集成测试调用异步 Spring 服务方法的 Spring MVC 控制器方法

我有以下 Spring MVC 控制器方法:

这里是实现sendPasswordResetInfo

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

我在控制器方法中系统地得到了一个 NullPointerException (在测试中),因为这里的未来对象为空:

但是,当我使用应用程序(测试之外)时,控制器方法运行良好。

我尝试使用如下同步任务执行器(无济于事):

我的问题是:

  • 为什么Future在集成测试期间对象始终为空
  • 在集成测试期间如何确保它不为空?
0 投票
1 回答
944 浏览

spring-aop - spring-mvc-test 自动回滚事务在服务层上配置了 AOP xml

我有以下 Spring MVC 应用程序堆栈:

控制器 -> 服务 -> DAO (Repository) -> 实体 -> MySql InnoDB

事务被配置为使用 AOP xml 配置从服务层开始,并且应用程序运行良好:

现在,我正在使用 spring-mvc-test 框架、UnitDB 等编写 Spring MVC 测试。测试类具有以下配置:

测试看起来像这样:

基本上我想要的是在测试环境中测试(使用)现有的 Spring AOP 配置,最初设置一些数据库数据,运行测试并在测试完成后回滚所有内容

在上述配置中,测试正在启动他们自己的事务,在给定的传播配置中,该事务在服务层遇到另一个事务,由 AOP xml 配置启动,我得到锁超时错误,因为由测试启动的事务正在等待由服务层的 AOP 配置。

我只是在编写测​​试,我不应该修改实际代码,只修改测试代码。我的任务是找到一种方法来回滚使用给定配置的测试所做的所有更改

任何想法表示赞赏。

编辑

这是有问题的案例:

  1. 测试类启动一个新的大事务,所有测试都自动回滚。
  2. dbunit 用初始数据填充数据库
  3. 测试启动控制器测试
  4. 控制器调用服务层,例如保存/更新实体(由 DBUnit 在测试类的开头插入),新事务在服务层开始(由 aop:config 配置),但支持步骤 #1 中的大事务
  5. 繁荣,发生错误:超过锁定等待超时;尝试重启事务

我认为DBUnit插入的数据仍然没有提交,因为它在同一个事务中。我需要找到一种方法在单独的事务中使用 DBUnit 插入初始数据,但在测试结束时仍将其回滚。

0 投票
1 回答
2951 浏览

spring-mvc-test - Spring MVC表单具有多行相同类型的字段,每行都有一个提交按钮,无法编辑单行

我有一个包含多行的表单,每一行都有一些可编辑的字段,这些字段通过表单输入路径和提交(编辑)按钮映射到模型类的属性。

现在,问题是在提交时,我无法动态地将一些 id 附加到路径以识别提交的记录并在控制器中获取其值。这是必需的,因为每个表单输入路径在每一行中都具有相同的名称。

并且表单有多行,每一行都映射到表单bean的一些属性,比如

有什么方法可以根据 id 识别提交的记录(可编辑字段)并编辑值。

有人可以帮帮我吗..

0 投票
1 回答
1997 浏览

spring-test - 涉及具有惰性集合的实体的 Spring 集成测试问题

我正在试验新的 Spring Security Test 框架。我有一个涉及返回带有惰性集合的 JPA 实体的测试。

由于惰性集合之一,以下测试以错误告终。

这是错误消息:

我在测试设置中遇到了什么问题?为什么过早关闭 JPA 实体管理器?我该如何规避这个问题?

编辑1

来自控制器的方法:

服务方法:

编辑 2

我意识到测试实际上是错误的,即使我已经用@Transactional如下注释测试方法:

这是错误消息:

编辑 3

以下是课程的相关部分:

0 投票
0 回答
225 浏览

spring - @WebAppConfiguration pre Spring 3.2.x

我正在编写一堆 spring-mvc 测试,但我使用的是 Spring 3.1,现在升级到 3.1 后存在一些问题,所以我现在没有尝试。

我的问题是,我有一个弹簧控制器测试,但我正在尝试将一个 WebApplicationContext 注入到测试中,而且我所看到的任何地方都是通过 @WebAppConfiguration 注释完成的。这个注解在 Spring 3.1 中不存在,这是如何在 3.2 之前完成的?

谢谢!亚历山德罗·费鲁奇

0 投票
3 回答
14911 浏览

spring-mvc - 在 Spring 安全中启用 CSRF 保护的单元测试控制器

最近我们为我们的项目引入了 CSRF 保护,它使用了 spring security 3.2。

启用 CSRF 后,一些单元测试失败,因为请求中不存在 csrf 令牌。我在“_csrf”参数中放入了一些虚拟值,但它不起作用。

无论如何我可以在发送请求之前获得 csrf 令牌(在单元测试时)?

0 投票
0 回答
631 浏览

java - 无法自动装配 webApplicationContext Spring MVC 测试

我有一个使用 Spring Framework 3.2.4 创建的 Rest API。我正在尝试在 WebApplicationContext 中编写测试用例。我从服务器日志中看到 xml 配置文件已加载,但在执行 TestContextManager 时失败。

这是我的测试课:

}

这是我的控制器

……

}