java - 在集成测试中使用 Spring Boot 测试伪造一个 bean

标签 java spring spring-boot integration-testing spring-test

与@MockBean和@SpyBean相同,是否有类似@FakeBean/@DummyBean的东西?

这个想法是,实例是 100% 真实的(具有预期的生产内部状态),并且它会覆盖上下文中的实例(或者添加 bean,以防它未在配置中声明)。理想情况下,您不需要创建 TestConfiguration 类并将其设置为 Primary,因为这样您就可以在每次测试的基础上控制假值,仅在需要时才进行控制。否则它使用主函数。

例如,当 bean 是上下文数据收集器时,它非常有用,因此可以在每次测试后使用 MockReset 来清理它。

实现这一目标的最干净的方法是什么。即使我们并不真正从事 spy Activity ,@SpyBean 是正确的选择吗?

最佳答案

我认为这不是一个好主意。自动创建bean可能会产生很大的开销,因为在某些情况下该过程将逐步创建整个上下文。最好创建 TestContext 并控制 bean 创建,因为哪里需要创建真正的 bean,哪里需要创建模拟。如果您创建mock,则与自动过程相反,将不会创建其中的bean,并且您的测试上下文也不需要这些bean。

PS.Spring 有很好的错误解释(与所需的 bean 声明相关),并且可以声明 @MockBean@SpyBean具有多个类的类级别,可以轻松快速地声明。

关于java - 在集成测试中使用 Spring Boot 测试伪造一个 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52608450/

相关文章:

java - 如何从 Postgres 获取查询计划信息到 JDBC

java - 对于多级进程内缓存来说,更好的选择是什么?

java - Spring Boot Rest api csv下载不设置带扩展名的文件名

java - Spring Boot Configuration 在多个@Profile 上跳过注册

java - SpringBoot中找不到EntityManagerFactory

java - UI 在异步后台任务中缓慢执行

java - 返回基于多个变量的多态类

java - 如何更改 Jenkin 的 Property/ParameterDefinition 对象的值

java - 在android中使用POST调用spring Controller 会导致参数为空

spring - 服务器端MVC+客户端MVC