向 SpringBootTest 添加配置类会破坏组件扫描

2023-12-12

我正在尝试禁用真正的 Mongo 连接并在测试中将其替换为 Fongo 模拟。

这是我的测试课:

    @SpringBootTest
    @RunWith(SpringRunner.class)
    public class ControllerTest {

        @Autowired
        private WebApplicationContext wac;

        @Autowired
        private ObjectMapper objectMapper;

        @MockBean
        private MyService service;

        private MockMvc mockMvc;

        @Before
        public void setup() {
            this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
        }

        @Test
        public void performTest() throws Exception {
            ... logic ...
        }
    }

它工作正常,除非我尝试添加我的配置文件更改此行:

    @SpringBootTest

对此:

    @SpringBootTest(classes = TestConfig.class)

配置类本身:

    @Configuration
    @ComponentScan
    @EnableMongoRepositories
    public class TestConfig extends AbstractMongoConfiguration {

        @Override
        protected String getDatabaseName() {
            return "FongoDB";
        }

        @Override
        public Mongo mongo() {
            return new Fongo(getDatabaseName()).getMongo();
        }
    }

然后应用程序找不到 bean 并抛出下一个异常:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.fasterxml.jackson.databind.ObjectMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1486)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
    ... 28 more

我该如何修复它并正确应用附加配置?


try use

  • @SpringBootTest @Import(值 = TestConfig.class)

代替 @SpringBootTest(类= TestConfig.class)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向 SpringBootTest 添加配置类会破坏组件扫描 的相关文章

随机推荐

  • 如何按需启动/停止Delphi监控线程?

    我一直在寻找一种方法来监视 Delphi 中的特定注册表更改 找一个solution在 about com 上 procedure TRegMonitorThread Execute begin InitThread method omit
  • dword ptr 和 dword ptr:es 之间的区别

    我只是在 VS2010 中检查我的 C 程序的反汇编 这里是 int main 00B613A0 push ebp 00B613A1 mov ebp esp 00B613A3 sub esp 0D4h 00B613A9 push ebx 0
  • iphone如何处理按键事件

    你好 我正在开发 iphone 应用程序 并且想要处理 iphone 中的键盘事件 在Mac中 有一个类NSEvent可以处理键盘和鼠标事件 而在ios iphone ipad 中 NSEvent的对应类是UIEvent 它只处理触摸事件
  • 保留换行符的 C++ 预处理器字符串化?

    我需要记录 出于审计 记录目的 在我的代码中传递的 lambda 函数的代码 当然 lambda对象也需要保存 所以我想出了一个宏观的解决方案 如下 define LAMBDA AND STRING lambda lambda lambda
  • Android 互联网权限被忽略

    我有一个需要互联网许可的应用程序 但它似乎不适合我 I added
  • 相似度-抛光和包装

    我在用着Ploeh SemanticComparison s Likeness作为有效表达映射过程的预期输出的一种方式 如中所述Mark Seemann 在 PluralSight 上发表的优秀高级单元测试课程 我正在测试一些数据是否已正确
  • 斯坦福-NER定制对软件编程关键字进行分类

    我是 NLP 新手 我使用斯坦福 NER 工具对一些随机文本进行分类 以提取软件编程中使用的特殊关键字 问题是 我不知道如何更改斯坦福 NER 中的分类器和文本注释器来识别软件编程关键字 例如 today Java used in diff
  • 为什么包含空字符串的列表为真?

    我在工作中发现了一些返回包含空字符串的列表的内容 为了简单起见 我创建了一个示例 big ol trickster if big ol trickster foo else print You can t trick me 而且这个条件每次
  • 如何在 Docker Compose V2 中扩展服务?

    我有三个不同的项目 ProjectS 依赖于 Project 而 Project 又依赖于 Project 假设您只想开发 ProjectC 因此我想仅在运行时使用具有一个容器的设置 项目需要项目 所以我必须定义一个带有两个图像的docke
  • 获取 vcproj 文件中 $(ProjectDir)、$(SolutionDir) 的值

    是否可以得到的值 ProjectDir or SolutionDir 在 Visual Studio 之外以编程方式 我的情况是我需要将 vcproj 文件作为文本文件读取并获取其属性 如输出目录等 问题是某些属性包含环境变量 如 Solu
  • 具有动态大小的 Fortran 数组,与 R 函数 seq() 一样简单

    我想编写像 R 函数 seq 一样工作的 Fortran 代码 例如 x lt seq 0 1 0 1 将给出向量 x lt c 0 0 1 0 2 1 我将运行几次模拟 序列的长度将发生变化 在 R 中 这很容易完成 只需改变 seq 中
  • 如何确保仅当单击按钮时它才重定向到特定网址 javascript

    所以我以某种方式构建了它将总计从结账页面转移到索引页面 在本例中是付款页面 但这是一个问题 当进入结帐页面时它会自动转到索引页面 但我希望它仅在按钮打开时才这样做单击 我尝试使用 addEventListener 执行某些操作 但它只是在i
  • 粘性表格标题

    我正在用这个plugin在我的中实现粘性表头Table 实际上 就像在插件示例和我的页面中一样 表头在表中的最后一行稍后消失 我希望我的表头在最后一行消失时消失 有机会实现这一点吗 这是一个工作示例 fiddle 我所改变的只是这一行的结尾
  • 简单赋值时不输出期望值

    当我将一些值分配给具有四位的变量时 当我简单地输出该值时 我会得到意想不到的结果 我以前从未见过这个 想知道我是否在语法上做错了什么 module main reg 3 0 x initial begin monitor b x x 001
  • Boot2Docker(在 Windows 上)使用共享文件夹运行 Mongo(不支持此文件系统)

    我正在尝试使用 Boot2Docker 在 Windows 上使用共享文件夹启动 Mongo 容器 开始使用时run it v c Users 310145787 Desktop mongo data db mongo我在容器内收到一条警告
  • 谷歌数据流写入bigquery表性能

    我将处理数据和输出的性能与 Bigquery 表和文件进行了比较 差异显着 输入 约 600 个文件中的 150 万条记录 转换 构造 转换每个记录中的一些字段 构造一个键并发出键 值对 最终每个键的记录都会到达一个目标 一个文件或一张表
  • 将元素从一个 div 内部拖动到另一个 div 中

    我希望能够将一个元素从一个 div 内部拖动到另一个 div 中 jQuery用户界面可拖动的 and 可丢弃的 但他们似乎只是在视觉上操纵元素 使用position relative而不通过 DOM 移动它们 如果可以的话 我似乎找不到例
  • 如何在 .NET 中获取绝对或标准化文件路径?

    如何以最小的努力 如果可能的话 使用一些现有的设施 转换路径 例如c aaa bbb ccc to c aaa ccc 我会这样写 public static string NormalizePath string path return
  • 与自我绑定的窗口?

    我试图将窗口的数据上下文设置为自身 但我无法弄清楚语法应该是什么
  • 向 SpringBootTest 添加配置类会破坏组件扫描

    我正在尝试禁用真正的 Mongo 连接并在测试中将其替换为 Fongo 模拟 这是我的测试课 SpringBootTest RunWith SpringRunner class public class ControllerTest Aut