gpt4 book ai didi

unit-testing - 如何覆盖 Spring @Autowired 的行为

转载 作者:行者123 更新时间:2023-12-04 07:13:02 25 4
gpt4 key购买 nike

一点背景:

我正在使用 Spring 2.5,特别是 Spring IOC 和注释。

我正在使用 @Autowired在我的代码中( Autowiring 是按类型完成的)
并使用 @Component用于将类暴露给自动布线。

当我尝试测试我的代码时,出现了下面描述的情况。

现在解决问题:

注意:我为测试环境使用了不同的 Spring 上下文。

我有课FOO这是@Autowired但在测试上下文中,我想使用相同类型的不同类MockFoo (扩展 FOO)。

由于 FOO 的依赖注入(inject)的多个选项,Spring 设置当然会自动失败。类(FOOMockFOO 都符合类型检查)。

我正在寻找一种注入(inject)测试 bean 而不是原始 bean 的方法。

我希望 Spring 允许使用 Context 配置文件来覆盖 bean 注入(inject)或命令 Spring 不要 Autowiring 特定的 bean。



所有这些选项似乎只存在于最初在 Spring 上下文配置文件中定义的 bean。

最佳答案

使用 ReflectionTestUtils 手动设置 Mock 代替 Autowiring 的依赖项(为此目的,您的模拟不得由 Spring 管理,因此不存在歧义)

关于unit-testing - 如何覆盖 Spring @Autowired 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2843281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com