问题标签 [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 投票
2 回答
3501 浏览

spring-mvc - Spring MVC 测试用例

我是 Spring MVC 的新手,我使用 spring MVC 和 resteasy 编写了 web 服务。我的控制器工作正常,现在需要编写测试用例,但我尝试了 writtig,但我从未成功我也遇到了自动装配问题。

@控制器

谁能给我 Spring mvc 中测试用例的示例代码。

0 投票
4 回答
23407 浏览

unit-testing - @WebAppConfiguration 未注入

我正在尝试使用 Spring 3.2.1 创建 spring-mvc 测试。在一些教程之后,我认为这将是直截了当的。

这是我的测试:

这是我相关的 pom.xml:

我有以下测试配置类:

我的理解是添加@WebAppConfiguration会强制 Spring 注入它。但是当我在 Eclipse 中运行这个测试时,我得到:

引起:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖找到[org.springframework.web.context.WebApplicationContext]类型的合格bean:预计至少有1个bean有资格作为此依赖的自动装配候选者。依赖注解:在 org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:967) 在 org.springframework.beans 的 {@org.springframework.beans.factory.annotation.Autowired(required=true)}。 factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:837) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:749) 在 org.springframework.beans.factory.annotation。

更新- 我必须更改我的测试 Java 配置类

但是,现在的问题是我可以调用我的 REST 服务,但它正在调用其他一些服务,包括数据库调用。仅测试呼叫和模拟响应的首选方法是什么。我想测试有效和无效条件。

0 投票
1 回答
6804 浏览

spring-mvc - Spring MVC 控制器的集成测试

我有一个控制器,它返回 XML 数据以响应调用。下面是代码

accountBalanceList 用 xml 注释。我从这个调用中得到的响应是这样的

我想为此控制器调用编写集成测试。我知道如何使用 JSON 响应测试控制器,但我不知道如何测试响应何时为 XML。任何帮助将不胜感激。

问候

0 投票
6 回答
73956 浏览

spring - 使用 Spring MVC Test 测试 Spring MVC @ExceptionHandler 方法

我有以下简单的控制器来捕获任何意外异常:

我正在尝试使用 Spring MVC 测试框架编写集成测试。这是我到目前为止所拥有的:

我在 Spring MVC 基础架构中注册了 ExceptionController 和一个模拟 StatusController。在测试方法中,我设置了从 StatusController 抛出异常的期望。

异常被抛出,但 ExceptionController 没有处理它。

我希望能够测试 ExceptionController 是否获得异常并返回适当的响应。

关于为什么这不起作用以及我应该如何进行这种测试的任何想法?

谢谢。

0 投票
1 回答
1426 浏览

spring - 在 Spring MVC 应用程序中测试转发

有没有办法forward:/在 JUnit 测试中测试从 Spring MVC 控制器返回的视图的功能?

我正在使用MockMvcSpring 3.2 中的功能,并且在某些情况下我的控制器转发到另一个(通过返回视图名称forward:/pathHandledByController)。

能够断言当这个转发发生时,@ModelAttribute来自第二个控制器的所有 s 都被应用并且一切都正常处理,这将是很棒的。不幸的是MockMvc,我只能断言返回的视图名称以forward:/.

有什么方法可以在不启动整个网络应用程序的情况下进行测试,比如 Jetty?我已经在 MVC 应用程序中插入了很多服务,我将如何创建一个使用单独的 Spring 配置(来自src/test/resources)和这些服务的模拟的 web 应用程序?

0 投票
1 回答
621 浏览

testing - 是否可以使用 Springs MockMvc 测试 Portlet 控制器?

您可以使用 MockMvc 类测试您的“普通”Spring MVC 控制器,如下所示:

来自处理程序映射的 Spring 参考

因为在 Portlet 中实际上没有 URL 这样的东西,所以我们必须使用其他机制来控制映射。最常见的两个是 portlet 模式和请求参数,但是任何可用于 portlet 请求的东西都可以在自定义处理程序映射中使用。

MockMvc 仅适用于“普通”控制器,还是在测试 Portlet 控制器时可以使用它?

0 投票
1 回答
2629 浏览

spring - 集成测试中的 Spring autowire HttpServletRequest

我们有像这样的单例控制器

MyObject 在过滤器/拦截器中创建并放入 HttpServletRequest 属性中。然后在@Configuration中获取:

在主代码中一切正常,但在测试中却不行:当我从集成测试中运行它时:

它抱怨说NoSuchBeanDefinitionException: No matching bean of type [javax.servlet.http.HttpServletRequest]。(起初,它抱怨请求范围不活跃,但我按照这里的建议使用带有 SimpleThreadScope 的 CustomScopeConfigurer 解决了它)。

如何让 Spring 注入知道我的 MockHttpServletRequest?还是直接MyObject?

0 投票
5 回答
328045 浏览

spring - 无法为 Spring 控制器的 JUnit 测试加载 ApplicationContext

我想编写一个测试用例来检查我的控制器(getPersons)。这是一个服务器端代码。我很困惑我应该在里面放什么@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/app-contest.xml"})

其次,我遇到了一些这样的错误:

无法加载应用程序上下文。找不到路径[我在@ContextConfiguration 中指定的]

我有这样的结构:


这是我的测试


痕迹

有人可以帮我弄清楚这里有什么问题吗?

0 投票
2 回答
25177 浏览

java - 使用 MockMvc 进行 Spring MVC 测试

我正在尝试运行测试以测试 Spring MVC 控制器。测试编译并运行,但我的问题是我收到了 PageNotFound 警告:

我非常简单的测试如下:

我 100% 确定我的 webapp 映射到“/”的首页,并且视图上的名称是“searchfrontpage”。

请帮忙!

0 投票
1 回答
3998 浏览

spring-mvc - 如何有效地为 spring mvc 集成测试创建基测试类

我有一系列集成测试,我想用它们来测试我的 spring-mvc/spring-data-jpa 堆栈。不幸的是,构建时间是荒谬的,而且每次新的集成测试只会变得更糟。看起来好像每个单独的测试都在通过创建嵌入式数据库、创建 bean 等的开销。

我有一个基础测试类:

我的 JpaConfig.java 在哪里:

最后我尝试使用它,例如:

在查看构建日志时,我可以看到每个测试的应用程序正在初始化。有没有办法让 BaseIntegrationTest 只启动一个和每个测试以使用该应用程序上下文和嵌入式数据库?

========

更新

我将我的 JpaConfig 更改为:

我的 BaseIntegration 现在是空的:

这是因错误而失败的测试之一:

InvalidDataAccessResourceUsageException(未找到表“ADDRESSTYPEREF”;SQL 语句:

但是,所有集成测试似乎都重新创建了 applicationContext 和嵌入式数据库。虽然构建日志没有显示正在创建的数据源,但我确实看到每个集成测试都会创建一个新的 log4j 文件,并且构建 45 个测试需要 15 分钟。