【发布时间】:2019-03-07 14:05:03
【问题描述】:
和@MockBean 和@SpyBean 一样,有没有类似@FakeBean / @DummyBean 的东西?
这个想法是实例是 100% 真实的(具有预期的生产内部状态)并且它覆盖(或添加 bean,以防它未在配置中声明)上下文中的那个。理想情况下,您不需要创建一个 TestConfiguration 类并将其设置为 Primary,因为这样您就可以在每个测试的基础上控制伪造,仅在您需要它时。否则它使用主要的。
例如,当 bean 是上下文数据收集器时,它非常有用,因此可以使用 MockReset.AFTER 清除它。
实现这一目标的最简洁方法是什么。即使我们不是真正的间谍,@SpyBean 是否可行?
【问题讨论】:
-
我认为这不是一个好主意。自动创建 bean 可能会产生很大的开销,因为在某些情况下逐步创建整个上下文的过程。最好创建 TestContext 并控制 bean 创建,因为在哪里需要创建真正的 bean,在哪里需要创建 mock。如果您创建 mock ,其中的 bean 将不会被创建,也不会被您的测试上下文所需要,这与自动过程相反。
-
你能用这个写一个答案吗,我从其他人那里听到了这个解释,我不同意
标签: java spring spring-boot integration-testing spring-test