问题标签 [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.
rest - spring boot 集成测试 rest
我正在使用 spring boot 1.3.x 并尝试使用@WebIntegrationTest(randomPort=true)
and设置一些集成测试TestRestTemplate
。
我最初遇到的几个问题 -
@Autowired TestRestTemplate testRestTemplate;
没用,只好一起去TestRestTemplate testRestTemplate = new TestRestTemplate();
然后,@Value("${local.server.port}")
也没有工作。它抛出了无法解决的异常。所以不得不这样做 -
@Autowired Environment environment;
并且在@Test
方法中试图从环境中获取端口,但我得到的只是null
。所以那也行不通。
然后将端口更改为8080
使用application.properties
和仅使用@WebIntegrationTest
并手动设置TestRestTemplate
.
完成所有这些之后,我现在收到 Connection Refused 错误。
请帮忙。spring 文档没有帮助。
谢谢
java - 解析已在 Spring 引导测试中使用的端口 DEFINED PORT
我有一个 Spring Boot 应用程序,它启动并执行一个类,该类侦听Application Ready 事件以调用外部服务以获取一些数据,然后使用该数据将一些规则推送到类路径以执行。对于本地测试,我们在应用程序中模拟了外部服务,该服务在应用程序启动期间运行良好。
问题是在测试应用程序时使用spring boot 测试注释和嵌入式码头容器运行它:
- 随机端口
- 定义端口
在RANDOM PORT的情况下,在应用程序启动时,它会从定义端口的属性文件中获取模拟服务的 url,并且不知道嵌入式容器在哪里运行,因为它是随机获取的,因此无法给出响应.
在DEFINED PORT的情况下,对于第一个测试用例文件,它成功运行,但是在拾取下一个文件的那一刻,它会失败,说端口已经在使用中。
测试用例在逻辑上划分为多个文件,需要在容器开始加载规则之前调用外部服务。
在使用定义的端口的情况下,我如何在测试文件之间共享嵌入式容器,或者重构我的应用程序代码,而不是在测试用例执行期间启动时获取随机端口。
任何帮助,将不胜感激。
应用程序启动代码:
测试代码注释:Test1
测试代码注释:Test2
spring-boot - 无法在没有 HSQL 的情况下使用 JPA 运行 Spring Boot 测试运行器
我们正在尝试使用 AbstractRoutingDataSource、Mockito 为在 Spring Boot 中与 MyBatis 和 JPA 一起工作的应用程序编写测试用例;我们可以模拟 mybatis 代码。当我们集成 JPA 时,@SpringBootTest 试图访问它失败的 AbstractRoutingDataSource 数据源。
我们喜欢完全扩展使用 mockito,因此我们不想使用 HSQL/H2 数据库进行测试,这会增加我们插入所有所需数据的代码。请在下面找到错误日志,
我们试图模拟 AbstractRoutingDataSource 但它仍然抛出不同的错误。
spring - @DataMongoTest 正在创建一个空的 MongoTemplate
我一直在尝试按照以下链接中的说明尝试添加自动配置的嵌入式 MongoDB 实例以进行 Cucumber 集成测试。这目前不起作用,因为我一直得到一个空的 MongoTemplate。我以为@DataMongoTest 会自动配置“@Autowired private MongoTemplate mongoTemplate;” 不是这样吗?下面是我的代码:
mongoTemplate.save(文档,集合);引发空指针异常。
pom.xml 文件:
spring-boot - Spring boot TestRestTemplate 不会对请求参数值进行 URL 解码
设置:
- Spring Boot + SpringBootApplication;Spring Boot Test + TestRestTemplate 进行测试
- 1 个端点,由方法 foo 处理。
- 输入:1 个必需的请求参数(名为 q),必须在 URI 中进行 URL 编码。
- 输出: (foo) 只返回字符串 (q)。foo 没有进行任何处理。
如果我启动服务器并使用 URL 编码值卷曲端点,我会在响应中获得非 URL 编码值。
如果我用 TestRestTemplate 查询完全相同的东西,foo 会得到一个 URL 编码的值来处理,并且在现实世界中事情开始出错......
com.example.App
com.example.TestApp
构建.gradle
服务器启动 + curl 的输出:
集成测试的日志输出:
知道怎么了?
java - 使用 Spring Boot 进行集成测试
出于好奇......我是 Spring Boot 的新手,我正在做一些集成测试,使用@SpringBootTest
测试类的更新注释。
在常规代码(非测试代码)中,应用程序有一个自定义初始化程序,允许它加载外部 YAML 文件。
我想在测试中使用它,所以我有一个@ContextConfiguration
覆盖初始化器的注释,并且可能因为我添加了这个注释,它搞砸了@SpringBootTest
正在做的任何巫术,所以我需要添加 classes 参数来给它mainSpringApplication
以便在测试期间应用程序上下文可用并且Autowired
可以找到 bean。
我的问题是 - 提供ExamProcessorApplication.class
(主 SpringBootApplication)与默认行为在自动发现期间 @ContextConfiguration
的作用相同 - 或多或少?@SpringBootTest
我和一位同事正在讨论这个问题,我的想法是我的方式实际上是实例化主应用程序对象,但@SpringBootTest
不是。只是试图了解引擎盖下发生了什么。
spring-boot - 无法使用 Spring Boot Test 测试自定义存储库
我正在使用 Spring Boot 1.4.4。按照Spring Boot Test文章进行单元测试。当我有自定义存储库时,测试无法正常工作并因错误而失败UnsatisfiedDependencyException: Error creating bean with name 'com.jay.UserRepositoryTest': Unsatisfied dependency expressed through field 'userRepository';
这是我的代码,
但是我可以在没有任何配置更改的情况下使用 Spring Boot 测试以下 Dao,
当我使用时@SpringBootTest
,我可以注射UserRepository
,但不能TestEntityManager
。
spring - Spring Boot 黄瓜
我知道有一些类似的问题,但我对功能黄瓜文件的绑定步骤有一些问题。这是我的黄瓜跑者
注解
脚步
我总是得到“您可以使用下面的代码片段实现缺少的步骤:”。我使用 InteliJ IDEA,并在配置中设置了胶水。但仍然不起作用。你能帮助我吗?
java - 使用多 Maven 项目设置测试 Spring Boot 应用程序的问题
我目前在 spring boot 和多 maven 项目结构方面遇到了一些问题。我正在使用 Spring Boot 4.3.1。
我的项目结构如下:
application
模块依赖于library
.
MyApplicationTest
工作得很好,但是运行MyLibraryTest
时,我失败了,出现以下错误:
我的第一个猜测是library
需要依赖application
,但这会导致循环。
这个问题有什么解决办法吗?如何正确构建我的应用程序?
非常感谢您的建议。
MyLibraryTest
如下所示: