Mockito ArgumentCaptor 返回 Null

2023-12-28

我正在尝试使用 Mockito ArgumentCaptor 在我的方法中获取 mime 消息。当我取回捕获对象时,它的值为空。我对调试它很陌生,但 Mockito 用增强器包装了它,所以我看不到内容。这适用于我的方法中的对象。有人有想法吗?

这是我的样本测试。 msg 不为 null,但方法调用后返回 null。

@Test
public void testSendTemplatedMail() throws MessagingException, IOException {
    Context ctx = new Context();
    ctx.setVariable("name", "John Doe");
    ctx.setVariable("subscriptionDate", new Date());
    ctx.setVariable("hobbies", Arrays.asList("Cinema", "Sports", "Music"));
    String templateName = "testEmailTemplateWithoutImage";
    when(mailSenderMock.createMimeMessage()).thenReturn(mock(MimeMessage.class));

    try {
        mailUtils.sendTemplatedMail("John Doe", "[email protected] /cdn-cgi/l/email-protection",
                        "[email protected] /cdn-cgi/l/email-protection", "Hello",
                        templateName, ctx);
    } catch (Exception e) {
        e.printStackTrace();
        throw e;
    }

    ArgumentCaptor<MimeMessage> msg = ArgumentCaptor.forClass(MimeMessage.class);

    verify(mailSenderMock, times(1)).createMimeMessage();
    verify(mailSenderMock, times(1)).send(msg.capture());
    verifyNoMoreInteractions(mailSenderMock);

    System.out.println("Sample msg subject = " + msg);
    System.out.println("Sample msg ctype = " + msg.getValue().getContentType());
    System.out.println("Sample msg to = " + msg.getValue().getAllRecipients());
    System.out.println("Sample msg sender = " + msg.getValue().getSender());
    System.out.println("Sample msg from = " + msg.getValue().getFrom());
    System.out.println("Sample msg content = " + msg.getValue().getContent());




    // assertEquals("accountAlmostDone", mv.getViewName());
    // assertEquals("NA", mv.getModel().get("activationCode"));
}

你已经断掉了createMimeMessage返回一个模拟。据推测,这个模拟正在传递给send;所以你的参数捕获器只是捕获模拟。模拟中的每个方法(getContentType()和其他)只是返回 null,因为您还没有对它们进行存根。

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

Mockito ArgumentCaptor 返回 Null 的相关文章

  • 无法在单元测试中检查响应标头

    我有一个 Http 处理程序的单元测试 在其中我创建了一个HttpResponse对象并将其传递给我的 Http 处理程序的方法之一 我的一项测试尝试验证响应标头是否已正确设置 Assert AreEqual gzip response H
  • 在 Jasmine 测试中配置 Angular 服务提供者

    我的服务有someModule module someModule provider someService function this options this get function return options 我正在编写规范 到目
  • 尚未注册类型“Microsoft.AspNetCore.Mvc...”的服务

    我正在尝试测试此控制器方法 以确保它重定向到另一个控制器方法或存在模型错误 public IActionResult ResetPassword ResetPasswordViewModel viewModel if viewModel N
  • 如何在Vue3中对setup的内部函数(不是返回)进行单元测试?

    我想这样测试 情况1 错误 无法监视内部属性 因为它不是函数 改为未定义 组件 vue export default setup function outer inner function inner do something for on
  • Hamcrest 泛型地狱 #2:iterable With Size 给出错误“不适用于参数”

    在 hamcrest 中 1 3 RC2 没有 JUnit 依赖项 我使用失败iterableWithSize 我有一个 扩展 Iterator参数化为Content像这样EndResult
  • 不返回值的方法的起订量调用库(void 方法)

    我正在尝试模拟正在测试的类 以便在测试它们时可以对各个方法进行调用 这将允许我仅将方法设置测试为调用库 并且从测试方法中调用的所有其他方法 同一类 都将被模拟 但是 对于不返回值的方法 我无法执行此操作 对于不返回值的方法 智能感知只是不显
  • Node.Js:资源解释为字体,但以 MIME 类型 text/html 传输

    我的网站上的图标 由 Node Js 提供 未呈现 并且我看到标题中指示的错误 我正在为我的服务器使用这个脚本 https github com joeeames AngularFundamentalsFiles blob master w
  • 在 C# 中使用 Nsubstitute 模拟具有固定参数的可选参数的函数返回 null

    我一直在尝试模拟一个包含带有固定参数的可选参数的函数 但每次我得到一个空值 这是我在接口中定义的函数 我想模拟它 List GetEntitiesByIDs List
  • 支持链接方法的模拟对象

    我想知道是否有一种相当简洁的方法来模拟支持方法链接的对象 例如 数据库查询对象可能有一个如下所示的方法调用 result database gt select my table gt where array my field gt a va
  • 如何让多个 MockFor 在 Groovy 中工作?

    我正在尝试让多个模拟在 groovy 中工作 我成功实现此功能的唯一方法是创建我自己的模拟 添加元方法 我尝试过使用嵌套 use 语句 还尝试了一种使用和一种带验证的代理 但都不起作用 这两个都返回失败 junit framework As
  • 从 pytest_generate_tests 方法在 junit xml 中添加日志

    我正在使用 Jenkins 来解析 Junit XML 任何开发人员也会考虑 Jenkins 故障以进行分类 这意味着所有日志都应该在 Junit xml 中可用 问题是 pytest generate tests 方法有一个非常大的实现
  • 使用 Maven 对 Android 进行单元测试

    我有一个关于使用 Maven 构建的 android 项目的问题 我们让它运行我们的活动测试 但现在我们需要它来运行单元测试 单元测试与活动测试位于同一项目中 我如何在 pom xml 文件中设置它 这是父 Pom xml 文件
  • 使用 NSURLSession 进行单元测试

    我想为使用共享的方法编写单元测试NSURLSession 特别是 NSURLSessionDataTask下载数据 基本上 我希望目标方法能够接收模拟响应 数据 而不需要互联网连接 模拟这些组件的不太不显眼的方式是什么 我正在考虑填充NSU
  • mime.lookup 的 webrtc 错误

    我在我的电脑上尝试了 webrtc 演示 但在演示步骤 04 中 当我使用 npm install 和 node index js 时 它显示 类型错误 mime lookup 不是一个函数 即使我通过输入 npm install mime
  • 如何在 Kotlin 中模拟和验证 Lambda 表达式?

    在 Kotlin 和 Java 8 中 我们可以使用 Lambda 表达式来删除样板回调接口 例如 data class Profile val name String interface ProfileCallback fun onSuc
  • spring boot测试如何获取服务器端口

    我有 Spring Boot 1 5 3 应用程序 有一条线server port 8081在 application properties 文件中 现在我想测试一下 ping 方法 private final Environment en
  • Grails 测试中的模拟配置

    在 Grails 2 0 X 之前 可以使用mockConfig测试扩展的基类提供的方法 然而 在 Grails 2 0 X 中 建议测试类使用 TestFormixin 而不是扩展基类 这个 mixin 似乎没有提供任何与mockConf
  • 让 PHPUnit 忽略一些事情?

    我有一个 PHPUnit 测试类 我希望在测试运行中忽略它 我知道我可以通过重命名它来做到这一点 以便它的文件名中不包含 测试 一词 但我不想这样做 因为它比我想要的更混乱了源代码控制水域 有人有建议吗 有几个选项phpunit命令可以帮助
  • 测试 Spring 端点时如何防止 NestedServletException?

    我在尝试着测试安全配置我的一些端点受到保护 PreAuthorize oauth2 hasScope scope 当使用不具有所需范围的访问令牌通过 Postman 访问此类端点时 将返回以下内容并带有 HTTP 状态代码 403 禁止 e
  • grailsGrails 单元测试中的应用程序访问

    我正在尝试为使用 grailsApplication config 进行一些设置的服务编写单元测试 看来在我的单元测试中 服务实例无法访问其设置的配置文件 空指针 而当我运行 run app 时它可以访问该设置 我如何配置服务以在单元测试中

随机推荐

  • 将表达式插值到表达式中

    我想在宏内部构建一个带有关键字参数的构造函数 并且第一个关键字参数需要用于表达式 我无法将该表达式放入表达式中 这就是我的意思 说我有一个类型 type Test ex end 其中包含一个表达式 我想创建一个构造函数origex a b
  • 在 RaphaelJS 中制作 100% 宽度的图表?

    我见过 Flash 中的图表和其他东西基本上可以很好地适应浏览器的大小或它们所在的灵活元素 我不太熟悉 raphaelJS 但你能做到这一点吗 如果是的话 如何 在 raphaeljs 中 您可以对 Raphael 对象调用 setSize
  • hadoop map reduce -archives 不解压存档

    希望你能帮我 我在 hadoop map reduce 上遇到了一个令人头疼的问题 我已经在 hadoop 版本 1 0 3 上成功地在 map reduce 上使用了 files 选项 但是 当我使用 archives 选项时 它会复制文
  • 有或没有[弱自我]

    我的情况很奇怪 我的服务器当前已关闭并收到 503 http 状态代码 根据给定的代码如下 代码进入 if 条件 但是当我将调试点置于let error self decodeErrorMessage data data statusCod
  • 为什么 isProviderEnabled() 方法即使在建筑物内部也始终返回 true

    在这种情况下 我使用 GPS 作为提供商 我尝试在建筑物内行走 但似乎找不到位置 是的 在大楼里 GPS 不起作用是有道理的 那么 为什么 isProviderEnabled 返回 true 呢 无论如何 我应该如何实现 搜索 GPS 信号
  • C++ STL map::operator[] 在被删除的条目上完成

    std map
  • 用正则表达式替换两个以上的换行符

    我想在我的文本区域中搜索 n 换行符 但我希望两个行距是最大的 我可以在此使用什么公式regex这样它就会寻找超过三个的任何东西 n是连续的 n n n 并将其替换为一个 br this replace new RegExp n gim b
  • 类型错误:无法读取未定义 faker-js faker 的属性“uuid”

    我正在尝试使用faker js https www npmjs com package faker js faker包裹 但我意外地收到了一个TypeError Cannot read property uuid of undefined对
  • 解决承诺和处理浏览器事件的时间

    考虑以下用 ES6 编写的代码 function waitForMessage return new Promise resolve reject gt function handler event resolve event window
  • 使用 Python 创建损坏的符号链接

    我想使用 Python 创建一个指向不存在路径的符号链接 然而 os symlink 只是抱怨 OSError Errno 2 没有这样的文件或目录 这可以很容易地用ln程序 但是如何在 Python 中执行而不调用ln来自 Python
  • mysql regex_replace:如何在替换中使用正则表达式组

    有一个表 id Name 1 test1 test1 test1 2 test2 test2 test2 想要选择第一个正则表达式组 使用第一个单词来简化 所以我的查询 SELECT regexp replace name alnum sp
  • emberjs 绑定数据属性

    我想知道是否有一种方法可以在调用视图时在模板中绑定数据属性 例如 这不起作用 view App SomeView data dateBinding currentDate 我最终这样做了 a a 调用视图的时候一定有办法做到吗 更多关于 k
  • 错误被杀死:命令“git add”后出现 9。

    当我执行 git add 时遇到问题 我收到一条错误消息 已杀 9 如果我再次尝试 git add 我收到另一个错误 致命 无法创建 crmeasy git index lock 文件存在 Another git process seems
  • 如何强制Android重新索引手机上的所有照片?

    我注意到 Galaxy Nexus 处理照片和文件目录的方式有些奇怪 我创建了它们 但 Android 4 2 2 在您重新启动之前并不知道它们存在 至少在我的 Nexus 4 上是这样 我正在创建一个应用程序 当拍照并将其存储在图片中时
  • 没有找到适合完成该操作的成像组件 WPF vb.net

    我使用 WPF 应用程序中的以下代码将图像插入到 mdb 数据库中 Dim con As New OleDbConnection Provider Microsoft ACE OLEDB 12 0 Data Source GetCurren
  • Twilio 加入 Google Hangouts 电话会议

    我正在使用 GSuite 附带的 Google Hangouts for Enterprise 当 Google Hangouts 会议开始时 它会提供带有 PIN 码的拨入号码 1 xxxx xxxx 3235 一些 PIN 码 3495
  • 日期范围的 URL 约定

    在友好 URL 中显示日期范围的可接受约定是什么 例如 在时间跟踪应用程序中 我希望使用用户更容易区分的内容 而不是在 URL 中使用数据库的主键来表示特定的付款周期 http www mytimesheet com 11 1 2009 1
  • 在 Perl 中检查字符串是否为空的正确方法是什么?

    我一直在使用此代码来检查字符串是否为空 if str 与不等于运算符相反 if str 这似乎有效 我认为 但我不确定这是正确的方法 或者是否存在任何不可预见的缺点 只是感觉有些不对劲 对于 Perl 中的字符串比较 请使用eq or ne
  • 如何从手机启动 Android Wear 活动

    我一直在从事一个项目 我需要手机上的按钮来启动手表上的活动 我一直在查看 sdk 中的数据层示例 但无法使其工作 我设置了一个可穿戴侦听器服务类 但它没有接收任何消息 该服务已添加到清单中 但仍然无法运行 我也有其他服务 我想我可能有太多服
  • Mockito ArgumentCaptor 返回 Null

    我正在尝试使用 Mockito ArgumentCaptor 在我的方法中获取 mime 消息 当我取回捕获对象时 它的值为空 我对调试它很陌生 但 Mockito 用增强器包装了它 所以我看不到内容 这适用于我的方法中的对象 有人有想法吗