问题标签 [spring-boot-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.
java - Spring Boot 测试未从 src/main/resources 中获取 hbm.xml 文件
我们有一个关于 spring-boot 版本 1.5.2.RELEASE 的项目。
我们需要在 xml 中处理 hibernate 命名查询(java 注释中的命名查询不是我们的选择)。
为此,我们hbm.xml
在目录中添加了所有文件(包含这些命名查询)src/main/resources
。
当我们的应用程序运行时,这不是问题。命名查询被正确提取。
但是,当我们编写集成测试用例时,它无法识别命名查询。
我们得到:
未找到命名查询异常
下面是我们的测试用例代码:
如果我们将hbm.xml
文件复制到 中src/test/resources directory
,则hbm.xml
文件会被正确拾取并且测试会正确运行。
无论如何,xml文件是直接从src/main/resouces
文件夹中提取的,我们不必复制这些文件吗?
spring-boot - 使用@SpringBootTest 时的空指针
我正在使用弹簧靴 1.4,
当使用 @SpringBootTest 注解进行集成测试时,它会给出一个空指针。
对于主要课程:
然后在我的控制器中:
你好服务
但是在处理请求时,它会在 helloService 时说 NullPointException。
我错过了什么?
spring-security - 在集成测试中模拟哪个类来绕过 Springboot 安全性
在这里创建一个 TestConfiguration 对我来说似乎不正确。凭据应该在“application.yml”中,并且应该已经模拟了身份验证调用。请建议编写此测试的更好方法。
hystrix - 从集成测试中休息 Hystrix
我正在尝试使用 restAssured 和 SpringBootTest 为休息服务“A”编写集成测试,并且 A 服务在 Hystrix 命令中调用另一个服务“B”,我想在每次测试后重置 hystix
我试过了Hystrix.reset();
,HystrixPlugins.reset();
但它不起作用,我猜这个方法必须被称为应用程序代码而不是来自测试
spring - 使用 Spring Boot 进行集成测试
我正在使用 spring boot 开发一个 Rest Api。我知道我可以使用像 H2 这样的“测试数据库”进行所有集成测试,并且 spring boot 能够初始化 sql 脚本。
但是,我的应用程序正在使用旧的自制库通过过程访问数据库,我无法重构为 JPA(不幸的是)。
我不认为我可以将数据库和程序设置到 H2 中(因为我使用的是非标准数据库)。
我的问题是:如何在这些条件下测试我的端点?
谢谢
spring-boot - ControllerAdvice to work with rest-assured
I have a controller advice:
And when testing the exception handler is not working:
It just throws the exception, and the controller advice never captured it.
How can I make rest-assured work with ControllerAdvice in a whole context setup situation.
spring - Spring Boot 在测试运行期间不注册 HttpMessageConverter
我正在运行一个 Spring Boot 应用程序,并且我已经注册了一个新的HttpMessageConverter
名为CsvCompactVenueHttpMessageConverter
,这是它的代码:
它扩展AbstractHttpMessageConverter
并注册为 class 上的 bean WebConfiguration
:
然后我有一个名为的休息资源FoursquareResource
:
当我运行应用程序并调用http://localhost:8080/foursquare/New York NY
它时,它工作正常并呈现text/csv
响应。
但是当使用 RestAssured 运行测试时,@SpringBootTest
我得到一个 HTTP 406 响应(因为我认为它没有正确注册HttpMessageConverter
for text/csv
),这里是代码:
}
我不确定为什么在运行 Spring Boot 应用程序时会得到正确的答案,但在作为测试运行时会出现 406 错误。看起来新HttpMessageConverter
的没有在测试中注册,但我不明白为什么。谢谢并恭祝安康。
java - 嵌入式 mongo (flapdoodle) 在 Spring Boot 1.5 中不启动
我正在尝试从 Spring Boot 升级1.4
到1.5.2
. 据我所知,我已遵循更新指南。
实际上有两个问题,主要的一个与嵌入式mongo有关:
EmbeddedServletContainerFactory 现在必须显式创建
在测试配置类中,我必须添加:
我以前不必这样做。我必须包含它,因为当我运行测试时它给了我这个错误:
Caused by: org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
嵌入式 Mongo 无法启动
现在我得到这个错误:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'embeddedMongoServer' available
不知道我应该在哪里添加这个 bean(以及为什么我应该添加它)
我目前的设置
我有多个扩展测试,BaseIT
开始是这样的:
Mongo配置类:
测试配置类:
spring-boot - 如何在 Spring Boot Junit 中加载 web.xml 中定义的监听器类
我有 Spring Boot 1.2.4 Web 应用程序。
我在中定义了一个侦听器web.xml
。我正在为我的应用程序编写 Junit;此侦听器将具有日志记录框架初始化程序。但是我的 Junit 在运行 Junit 时没有加载这个监听器类。
如何web.xml
在 Junit 类中引用监听器。
spring-boot - 如何在所有测试之前启动服务器并在所有测试之后停止?
我想在所有测试之前启动服务器一次,然后在所有测试执行后关闭服务器。
在 Spring Boot 1.3 中,我可以创建一个@Component
with@PostConstruct
在执行测试之前启动服务器一次,然后在执行@PreDestroy
所有测试后停止服务器。
升级到 Spring Boot 1.5 后,在每个@PostConstruct
方法之前调用。每次都被调用,但只有在所有测试都执行之后! @Test
@PreDestroy
@Test
发生了什么变化和/或我现在应该如何做?