Mockito + Spring + @PostConstruct,mock初始化错误,为什么调用@PostConstruct?

2024-01-21

我有一个像这样的设置:

Bean class:

private final Map<String, String> configCache = new HashMap<>();
@PostConstruct
private void fillCache() {  (...) configCache.clear();} 

测试配置 class:

@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
@Primary
public Bean beanMock() {
    return Mockito.mock(Bean.class);
}

Test类别:哪个@Autowires豆子。

似乎当 Mockito 在 TestConfig 中创建模拟时,它调用 @PostConstruct ,而 @PostConstruct 又似乎在初始化映射字段之前被调用,因此它抛出异常。

我的问题是:

  • 为什么 Mockito 调用 @PostConstruct?
  • 如何禁用 @PostConstruct 进行模拟?

编辑:显然调用是在实例化之后完成的,就在 Spring 从 Config 的 @Bean 方法返回 bean 之前完成


Mockito 没有打电话@PostConstruct——春天来了。你说在你的测试中你使用@Autowired,这不是 Mockito 注释。

如果你想使用@Mock,你会发现 Mockito 不会调用你的@PostConstruct method.

换句话说,像这样编写测试类:

@Mock Bean myBean;

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

Mockito + Spring + @PostConstruct,mock初始化错误,为什么调用@PostConstruct? 的相关文章

随机推荐

  • WPF TreeView 虚拟化

    我正在尝试弄清楚这个虚拟化功能 我不确定我是否理解错误或发生了什么 但我正在使用 ANTS 内存分析器来检查虚拟化 TreeView 中的项目数 并且它只是不断增加 我有一个包含 1 001 个项目 1 个根项目 1000 个子项目 的 T
  • Scipy:凸包的质心

    如何使用 python 和 scipy 计算凸包的质心 我找到的只是计算面积和体积的方法 问候 弗兰克 假设您已经使用以下方法构建了凸包scipy spatial ConvexHull 返回的对象应该具有点的位置 因此质心可能很简单 imp
  • 为什么我无法在 Python 中两次登录 imap 服务器

    正如下面的错误消息所示 我无法登录 因为我处于 LOGOUT 状态而不是 NONAUTH 状态 如何从 LOGOUT 转到 NONAUTH 下面的示例 显然下面的登录凭据是伪造的 Python 2 7 3 default Aug 1 201
  • 在引发它订阅的异步事件后,对象是否会自动释放?

    假设我有一个可以从主线程调用多次的函数 每次被调用时 我都会创建一个WebClient对象异步下载一些数据 我的问题 这样做安全吗 是个WebClient调用事件后释放对象 如果内存不会自动释放 我不想继续分配内存 我的应用程序适用于带有
  • 将线段延长特定距离

    我正在尝试找到一种将线段延长特定距离的方法 例如 如果我有一条从 10 10 开始延伸到 20 13 的线段 并且我想将长度延长 3 如何计算新端点 在这个例子 10 44 中 我可以通过 sqrt a 2 b 2 获得长度 所以如果我想知
  • 将 eclipse .project 文件存储在项目目录之外

    我不知道这是否可能 因为该文件不包含任何相关的目录链接 但无论如何 我想将 project 文件存储在项目根目录之外的单独目录中 我怎样才能做到这一点 您不能将 project 放在项目根目录之外 因为项目根目录是 project 所在的文
  • 更改立方体一面的颜色 - THREE.js

    我在使用 Three js 的同时学习 OOP 我知道 这是一个很难做到的方法 所以我在场景中创建了一个盒子 现在我想改变那个立方体的一个面的颜色 var scene new THREE Scene var camera new THREE
  • 我们可以使用 JSON 作为数据库吗?

    我正在寻找快速高效的数据存储来构建我的基于 PHP 的网站 我知道MySql 我可以在服务器根目录中使用 JSON 文件来代替 MySQL 数据库吗 如果是 最好的方法是什么 您可以使用任何单个文件 包括 JSON 文件 如下所示 以某种方
  • 在Asp.Net Core中,如何从正文中获取多部分/表单数据?

    在 Asp Net Core 中 他们似乎已经废除了Request Content ReadAsMultipartAsync有利于 IFormFile 的功能 这使得在拥有实际文件的情况下上传变得更加容易 但是 我有一个用例 我需要将文件上
  • Ionic Cordova SQLite 插件错误无法读取未定义的属性“openDatabase”

    我在 ngCordova 插件 cordovaSQLite 中遇到 1 个问题 下面的代码 var db cordovaSQLite openDB name myDB db 我在用着ionic serve在浏览器中 Error Uncaug
  • 如何在 MYSQL 中将行配对在一起?

    我正在开发一个简单的时间跟踪应用程序 我创建了一个表来记录员工的进出时间 以下是我的数据当前外观的示例 E ID In Out Date Time 3 I 2012 08 19 15 41 52 3 O 2012 08 19 17 30 2
  • 使用 Git 挑选提交意味着什么?

    什么是git cherry pick
  • 在片段中启动 Activity

    我想在片段中启动一个活动 该活动就像任何其他已安装的应用程序一样 例如 电子邮件 我从 PackageManager 获取该应用程序的意图 现在我想在单独的片段中启动该活动 每当我使用startActivityFromFragment是在整
  • 是否有一个 Git 命令可以获取当前标签、分支和提交?

    我目前正在使用三个命令的集合来获取当前标记 分支以及最近提交的日期和 SHA1 git describe always tag git log 1 format H n aD git rev parse abbrev ref HEAD 这将
  • grep + grep + sed = sed:没有输入文件

    有人可以帮我吗 grep 287 file txt grep HI sed i s HIS HID g sed no input files 也尝试过 xargs grep 287 file txt grep HI xargs sed i
  • Microsoft Outlook 中的中心 div

    I used div style width 742px margin 0px auto 将容器居中div 在浏览器中它可以工作 但是当我在 Microsoft Outlook 中打开它时 它不在中心 我也用过 important on t
  • 数据库设计:注册和验证

    让未经验证的用户进入是一个好的选择吗 users table或者我应该做一个temp users table添加未验证的用户 第一个选项是在users table以一列为例 account activated保存一个整数 定义帐户是否经过验
  • Google 地图 Android 集群 OnCameraChangeListener() 已弃用

    使用教程here https developers google com maps documentation android api utility marker clustering 我在我的 Android 应用程序中成功实现了集群
  • 如何在字符串中添加补充 Unicode 字符?

    如何放置补充 Unicode 字符 例如 代码点10400 http java sun com developer technicalArticles Intl Supplementary 010400 gif 在字符串文字中 我尝试过像这
  • Mockito + Spring + @PostConstruct,mock初始化错误,为什么调用@PostConstruct?

    我有一个像这样的设置 Bean class private final Map