问题标签 [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 - Vaadin 最新版本中的树组件不起作用
我尝试在我的 maven 项目中使用带有最新版本 Vaadin 的Tree() 方法和 spring-boot 创建一个下拉简单菜单,但我无法导入正确的包。
我的 pom.xml 文件中只有这些依赖项:
我应该怎么做才能在最新版本的 Vaadin 上使用 Tree() 并解决此错误?
maven - 用jar共享常见的Springboot集成测试?
我可以有一个包含 Springboot 集成测试的 jar 并在其他模块中使用这个 jar 来执行常见的集成测试吗?
spring - Spring boot @SpyBean 导致测试套件出错可能是由于上下文未重置的问题
我对弹簧集成测试有疑问。
行为:
当我单独运行下面的测试时,它是成功的。
但是,当所有测试都运行时,其中许多测试包括下面的测试都是错误的。
当我忽略下面的测试并运行所有测试时,一切都成功了。
我没有包含错误堆栈跟踪,因为它与我们的业务逻辑高度相关,我怀疑该错误与我对 spring boot test 的使用有关@SpyBean
。
这是测试:
请注意,这DataKeyStore
是TokenTools
.
正如我上面所说,我怀疑测试正在互相踩踏,并且我@SpyBean
在其他测试类上以某种方式泄漏......
我的问题是如何确保此测试不会踩到其他测试?我试过@DirtiesContext
注释无济于事......
另外让我感到困惑的@SpyBean
是已经重置(根据文档/javadoc)。
有人可以帮忙吗?
编辑:使用我的 IDE 调试测试表明TokenTools
所有测试仅实例化两次:一次在测试初始化时,第二次用于@SpyBean
为上面的测试创建。在上述测试之后运行的其余测试使用第二个实例,即@SpyBean
实例......
spring-test - 如何确保 @SpyBean 仅用于给定的测试,而不是由其他人使用
我希望 a@SpyBean
仅由一个测试使用,而不被其他测试使用。我使用弹簧靴 1.4.4。
我试图依赖配置。我希望 spy bean 仅供RegenerateTokenOnCollisionIT
.
这是我尝试过的:
这是BaseApplicationTest
课程:
和BaseTest
班级:
当然,我希望将上述Config
类添加到现有的配置BaseApplicationTest
和BaseTest
类中,但不要完全替换它们。
有人可以帮忙吗?
spring-boot - 从 spring boot 1.3.8.RELEASE 迁移到 1.5.2.RELEASE - Neo4jDataAutoConfiguration 覆盖默认 sessionFactory
我有一个工作的 Spring Boot 应用程序,我正在尝试从 Spring Boot 1.3.8.RELEASE 迁移到 1.5.2.RELEASE。在我工作的 1.3.8.RELEASE 轨道中,我已经在使用休眠 5,即我在 y pom 中有以下依赖项
对于 Spring boot 1.5,这不是必需的,因此我将其更改为默认的 hibernate 5 依赖项,即 hibernate-core 并删除了版本声明。
但是我不知道为什么我的测试说:
我肯定已经配置了会话工厂
这是我如何开始我的 spring boot 1.5.2 测试:
由于某种原因,Spring boot 1.5 找不到我的会话工厂。但为什么?我是否使用了错误的依赖项?我已将 Hibernate5 会话工厂和事务管理器配置为 bean。
这是我的pom的一部分:
这是我如何启动我的应用程序
2017 年 3 月 29 日补充
在分析了启动配置后,我发现了这一行:
我不明白为什么Neo4jDataAutoConfiguration.class
要覆盖我的自定义persistenceConfigDevelopment
bean。
此外,如果我在我的主类上删除@EnableAutoConfiguration
and n然后应用程序启动并且正确的会话工厂被成功实例化,但是由于找不到 bean 而失败,但这是预期的,因为通常会处理这些 bean。@SpringBootApplicatio
Application
InternalResourceViewResolver
@EnableAutoConfiguration
java - 在测试中自发启动弹簧启动上下文
在深入了解 spring TestContext 配置期间,我遇到了 spring-boot-test 问题。
示例项目:github示例项目
我有三个带有一些 bean 的 Spring 配置(Config1
- 重量级配置,我需要缓存它)
我@ContextHierarchy
在上下文中用于单独的配置,并且我希望 Config1 只会加载一次。(使用 @ContextHierarchy 因为我在 spring-boot-test 中没有找到类似物)
完整代码:
如果我运行测试,Config1 真的被缓存了!但是,我看到以下内容:
两次和
只有一次。在我看来,这是可能的,因为ConfigTest1
已经缓存为 TestContext (它发生了,因为ConfigTest1
和ConfigTest2
包含在同一个包中)
这意味着 spring 启动了我的 spring 上下文三遍!为什么?在日志中看到 spring boot logo 三次:
你对这种行为是什么意思?它是错误还是功能?也许我做错了什么?
更新1:
非常感谢。但是,如果我在两个测试类中以不同的顺序在 @SpringBootTest 中设置属性(或类) - 将不会缓存任何配置:(
和
如果没有属性 - config1 真的会被缓存!在这种情况下——没有缓存
katharsis - 使用 SpringBootTest 的 Katharsis
我遇到了一个有趣的问题,当我尝试在 SpringBootTest 下调用 Katharsis 公开的 API 时,找不到它们。我可以使用相同的方法连接到 Spring MVC API,但 Kartharsis 端点在测试中返回 HTTP 404。我能够连接到 Kartharsis 端点,同时通过外部进程进行连接,例如通过浏览器调用相同的进程。
我尝试了多种解决方案,用 RestTemplate 或 OkHTTP 替换 Spring TestRestTemplate 都遇到了同样的问题。
这是我的代码片段:
java - 阻止 Spring Boot 测试点击 SpringBootApplication 类的@PostContruct
我有一个 SpringBootApplication 类,它有一个@PostConstruct
类似的方法(它初始化数据库连接的类型):
我也在使用extend
这个基类的 Spring Boot 测试:
我的测试在tests/
我的源代码下src/
不幸的是,有些情况beforeTest()
会在之前执行@PostConstuct
,有些情况会在之后执行。有没有办法让我的测试在@SprinbBootTest
不进入/构建SpringBootApp
类的情况下运行?
谢谢!
spring-boot - 单元测试期间未加载 Bean 变量
我正在尝试在 Spring Boot 中测试一些 dao 代码。这是我正在测试的课程:
变量 sql 正在从 bean xml 加载:
这是我的测试课:
每当我尝试运行测试时,它都会在从 bean xml 加载 sql var 时抛出 NPE。我尝试在测试中的 dao 上添加 @ContextConfiguration 或只是 @Autowired 但它不起作用。另外我如何在测试中验证它是否加载了一个值?感谢你的帮助。
dependency-injection - 依赖注入在 Spring Boot 测试中不起作用,但在正常开发中起作用
我开始开发经典的 Spring Boot MVC 应用程序。我使用依赖注入(使用@Service
,@Autowired
注释)没有任何问题。
当我尝试使用依赖注入运行一些集成测试时,我从 Junit 收到以下错误消息:
org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“hu.bookandwalk.RepositoryTests”的bean时出错:通过字段“userService”表示的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“hu.bookandwalk.services.UserService”类型的合格 bean 可用:预计至少有 1 个有资格作为自动装配候选者的 bean。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
测试代码的相关部分:
在hu.bookandwalk.services
包中,我有一个UserService
没有注释的接口和一个UserServiceImpl
用@Service
.
我不明白 DI 是否适用于运行我的应用程序,而不是为什么它在测试中不起作用。正如错误消息所说,spring boot 不知何故没有发现我的带注释的实现类。
测试与我的应用程序类位于同一个包中:我的hu.bookandwalk
所有服务、存储库、域都位于以下:hu.bookandwalk.services
, hu.bookandwalk.domain
, ...
知道我想念什么样的注释来让测试类被userServiceImpl
发现吗?