一起使用@Spy和@Autowired

2023-12-28

我有一个带有 3 个方法的服务类,服务类还使用一些 @Autowired 注释。 在 3 种方法中,我想模拟两种方法,但对第三种方法使用真实方法。

问题是:

  1. 如果我将 @Autowired 与 @Spy 一起使用,则将调用所有三个实际方法实现。
  2. 如果我仅使用@Spy,则对实际方法的调用将返回空指针,因为没有自动连线对象的初始化。

我知道这两个选项:

  1. Use @SpyBean https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/mock/mockito/SpyBean.htmlspring-boot-test 的注释作为唯一的注释
@Autowired
@InjectMocks
private ProductController productController;

@SpyBean
private ProductService productServiceSpy;
  1. 使用 Java 反射来“自动装配”间谍对象,例如反射测试工具 https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/util/ReflectionTestUtils.html
@Autowired
private ProductController productController;

@Autowired
private ProductService productService;

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

一起使用@Spy和@Autowired 的相关文章

随机推荐

  • 为什么 Erlang Dialyzer 找不到以下代码中的类型错误?

    free vars in dterm var V gt var V 显然无法键入检查 但是 透析器说一切正常 dialyzer erl Checking whether the PLT dialyzer plt is up to date
  • 使用 timeBeginPeriod / 任务调度时的 Thread.Sleep 与 Task.Delay

    给出附加的 LINQ Pad 片段 它创建 8 个任务 执行 500 毫秒 并绘制线程实际运行时间的图表 On a 4 core CPU it may look like this 现在 如果我添加一个 Thread Sleepor线程循环
  • 更好的算法来找到平均值[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何从 MediaStore.File 和 MediaStore.File.FileColumn 获取数据

    我正在尝试获取其中包含音频文件的所有文件名我已使用 Mediastore 来获取媒体存储音频 专辑 播放列表和音频数据另外 我如何获取包含音频文件的文件或文件夹标题 这是我尝试过的代码 但它不正确 因为我无法设置External Conte
  • jdbcTemplate.update 冻结

    我使用的是没有 transactionManager 的 Spring JdbcTemplate 因为我主要选择做 当我尝试从 JUnit 调用选择查询时 它可以工作 但是当我尝试调用 更新 时 它会冻结测试 没有连接超时 什么也没有 只是
  • c++ 中 if(pointer) 与 if(pointer != NULL) 之间的区别,cpplint 问题

    我已经检查过这个帖子了我可以使用 if pointer 代替 if pointer NULL 吗 https stackoverflow com questions 17772103 can i use if pointer instead
  • 如何将 yii2 表单错误放在锚标记的标题中

    如何将 yii2 表单错误放在锚标记的标题中 这是我的代码 form ActiveForm begin id gt login form options gt class gt form horizontal fieldConfig gt
  • Android 上的 Google Drive 错误:java.lang.IllegalArgumentException:名称不能为空:null

    我在 Google Drive Android 应用程序上遇到了 java lang IllegalArgumentException 名称不能为空 null 异常 我已经谷歌搜索好几天了 没有任何线索 这是我的代码 一个简单的例子 用于获
  • standard_init_linux.go:211: exec 用户进程导致“exec 格式错误”

    我正在为 python 脚本构建 Dockerfile 它将在 minikube windows 10 系统中运行 下面是我的 Dockerfile 使用以下命令构建 dockerdocker build t python hellowor
  • 如何访问 Ruby 模块方法

    我有一个用于常量的 Ruby 模块 它有一个变量列表和一种应用格式化的方法 我似乎无法访问该模块中的方法 知道为什么吗 If you include该模块的方法成为实例方法但如果你extend该模块然后它变成类方法 module Const
  • 在几秒钟而不是几小时内旋转数百个 JPEG

    我们的计算机一次获取数百张图像 我们需要尽快旋转它们并调整它们的大小 旋转可旋转 90 度 180 度或 270 度 目前我们使用的是命令行工具图形魔术师 http www graphicsmagick org 旋转图像 旋转图像 5760
  • WooCommerce 在成功结账时对每个产品执行 PHP

    仅当在 WooCommerce 中成功结帐时 我才需要为购买的每个产品 基于 ID 执行一些 PHP 有谁知道这是否可能 如果可以的话 你能给我指出正确的方向吗 Thanks 你可以运行一个函数woocommerce payment com
  • WinDbg !heap 命令由于缺少符号而无法工作

    我正在尝试使用 WinDbg 调试带有 C 非托管内存分配的 NET 应用程序 当我尝试运行 heap命令 我收到以下错误消息 0 022 gt heap ERROR Symbol file could not be found Defau
  • Graphviz:更改子图簇内的节点间距

    经验丰富但不是 Graphviz 专家 我分享的示例代码和图像是更大图表的一部分 我将其拉出来以使问题和示例更清晰 该图是按等级分开的并且从左到右流动 在图像示例中 您可以看到三个等级和节点空间很好 但我想在子图中收紧它们 我已经尝试了六种
  • 如何实现对2个不同表数据的搜索?

    使用 mysql 和 PHP 我已经在使用 MATCH AGAINST 子句了 它在单独的表上运行良好 就像我想在商店表中搜索一样 没问题 我想要的是能够在单个结果页面中搜索和显示不同表的结果 例如 如果我输入 巧克力衣服 我可能会得到4个
  • 在 C++ 或 Qt 中格式化 XML 文件

    我有一个 XML 文件 其中输出未格式化 这意味着所有输出都在一行中 但我想逐个标签地打破它 例如
  • all.moments 功能奇怪的结果

    我想计算分布的 n 阶矩 我正在尝试使用 R 中库 moments 的 all moments 函数 我已经以这种方式测试了 all moments library moments r lt rnorm 10000 rr lt all mo
  • 移动网络应用程序可以在后台运行吗? (iOS 和安卓)

    移动网络应用程序可以在后台运行吗 我主要对 iOS 和 Android 感兴趣 Thanks 由于这种情况几乎每天都在变化 因此我将发布更新的答案 这适用于这些浏览器的最新版本 但明天可能会发生变化 My 音乐应用程序 http thedi
  • .NET 中是否有多核排序实现?

    NET 中是否有多核排序实现 这是我不久前使用的多线程快速排序async await 在一定的排序大小下 它 恢复 回称为双端选择排序的基本排序 public static class SortExtensions
  • 一起使用@Spy和@Autowired

    我有一个带有 3 个方法的服务类 服务类还使用一些 Autowired 注释 在 3 种方法中 我想模拟两种方法 但对第三种方法使用真实方法 问题是 如果我将 Autowired 与 Spy 一起使用 则将调用所有三个实际方法实现 如果我仅