返回顶部
首页 > 资讯 > 精选 >Gomock 未返回预期值
  • 950
分享到

Gomock 未返回预期值

2024-02-05 22:02:45 950人浏览 泡泡鱼
摘要

问题内容 我是一位经验丰富的程序员,但对于 Go 来说还是个新手。我正在编写一些日志记录测试,出于这些目的,我生成了 logsink 类的模拟(使用 mockgen )。由于该部分都是

问题内容

我是一位经验丰富的程序员,但对于 Go 来说还是个新手。我正在编写一些日志记录测试,出于这些目的,我生成了 logsink 类的模拟(使用 mockgen )。由于该部分都是自动生成的,我认为我们可以假设那里没有任何问题。

这是我的测试代码:

func TestLogging(t *testing.T) {
    ls := mock.NewMockLogSink(gomock.NewController(t))
    ls.EXPECT().Init(gomock.Any())
    const logLevel = 1
    ls.EXPECT().Enabled(gomock.Any()).AnyTimes().Do(func(level int) bool {
        return level <= logLevel
    })
    log.Set(logr.New(ls))
    ls.EXPECT().Info(gomock.Any(), "Foo").Times(1)
    log.Info("Foo")
    ls.EXPECT().Info(gomock.Any(), "Bar").Times(0)
    log.V(2).Info("Bar")
}

但是这个测试失败了,因为“foo”日志永远不会被调用。我单步执行代码,发现我的 expect().do() 代码按预期被调用,并返回 true,但在模拟代码中,它将 logger.sink.enabled() 的结果视为 false

我做错了什么?我是否缺少一个秘密开关?


正确答案


好吧,事实证明 .do() 故意忽略返回值。这是代码中的文档:

// Do declares the action to run when the call is matched. The function's
// return values are ignored to retain backward compatibility. To use the
// return values call DoAndReturn.

向后兼容性。正确的。公共领域的血腥坑,如果你问我......

以上就是Gomock 未返回预期值的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: Gomock 未返回预期值

本文链接: https://lsjlt.com/news/561113.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Gomock 未返回预期值
    问题内容 我是一位经验丰富的程序员,但对于 go 来说还是个新手。我正在编写一些日志记录测试,出于这些目的,我生成了 logsink 类的模拟(使用 mockgen )。由于该部分都是...
    99+
    2024-02-05
  • Golang 函数返回值的未来趋势是什么?
    在 go 中,多返回值功能允许函数返回多个值,从而增强了灵活性。通过命名返回值,开发人员可以提高代码的可读性和可维护性。 Go 函数返回值的未来趋势 在 Go 中,函数可以返回任意类型...
    99+
    2024-04-13
    golang 函数返回值
  • PHP函数的返回值类型和返回值说明
    PHP是一种类型松散的编程语言,这意味着它允许开发人员在运行时更轻松地修改变量类型。但是,在编写函数时,开发人员必须清楚函数的返回类型和返回值说明,以确保函数将返回正确的数据类型和结构。PHP函数的返回值类型在5.0版本之前,PHP函数无法...
    99+
    2023-05-18
    PHP函数 返回值类型 返回值说明
  • Golang http.FileServer 返回 404 未找到
    php小编香蕉为您介绍Golang中的一个常见问题,即使用http.FileServer时返回404未找到错误。在使用Golang构建Web应用程序时,我们经常会使用http.File...
    99+
    2024-02-11
    overflow
  • python函数怎么返回多个返回值
    本篇内容主要讲解“python函数怎么返回多个返回值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python函数怎么返回多个返回值”吧!一般情况下,函数只有一个返回值,但Python也支持函数...
    99+
    2023-06-30
  • 函数返回值类型推断的未来发展趋势
    函数返回值类型推断是一种编程特性,无需程序员显式指定类型,允许编译器推断函数的返回值类型。它提高了代码的可读性和简洁性。目前,许多主流语言支持它。未来的趋势包括更准确的推断、跨语言支持以...
    99+
    2024-04-29
    未来发展趋势 python
  • javascript有返回值吗
    本篇内容主要讲解“javascript有返回值吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript有返回值吗”吧! ...
    99+
    2024-04-02
  • C++返回值类型后置实现(跟踪返回值类型)
    在泛型编程中,可能需要通过参数的运算来得到返回值的类型。考虑下面这个场景: template <typename R, typename T, typename U>...
    99+
    2024-04-02
  • Go openweathermap 预报返回类型
    Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《Go openweathermap 预报返回类型》带大家来了解一下##content_...
    99+
    2024-04-04
  • Go语言函数的返回值类型与多返回值特性
    标题:Go语言函数的返回值类型与多返回值特性 Go语言是一种由Google公司开发的开源编程语言,被广泛应用于云计算、后端开发等领域。在Go语言中,函数的返回值类型和多返回值特性是其特...
    99+
    2024-04-02
  • Linux Shell函数返回值
    Shell函数返回值,一般有3种方式:return,argv,echo 1) return 语句 shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回。 示例: #!/bin/b...
    99+
    2022-06-04
    函数 返回值 Linux
  • openssl_get_privatekey返回值为空 false
    一、 问题 使用openssl_get_privatekey() 返回值为空 二 、 解决 我原本的peivate_key的内容是这样子的,一个字符串,没有任何格式: $privateKey = 'A...
    99+
    2023-09-28
    php 开发语言
  • python函数的返回值
    返回值:return1.没有返回值    #不写return    #只写return:结束一个函数    #return None2.有一个返回值    #可以返回任何数据类型    #只要返回就可以接收到    #如果在一个程序中有多个...
    99+
    2023-01-30
    函数 返回值 python
  • golang函数的返回值
    go 语言函数可以使用 return 语句返回多个值,通过调用函数后指定变量接收。返回值数量及类型需在函数声明中明确指定,且函数可返回任意数量的值(但不能返回空值)。 Go 语言函数的...
    99+
    2024-04-19
    返回值 golang
  • python 调用 shell ,获取返回值和返回信息
    网络上有各种方案解决python调用shell的解决方案,但是没有一个完美的,以下是本人整理的一个方案,比较完美地解决了同时解决获取返回值和返回信息。def run_linux_cmd_quiet(i_cmd, i_nohup='0...
    99+
    2023-06-02
  • WCF回调返回值实例分析
    这篇文章主要介绍“WCF回调返回值实例分析”,在日常操作中,相信很多人在WCF回调返回值实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF回调返回值实例分析”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • Go返回值、返回引用、什么都不返回什么时候用什么
    问题内容 我正在编写一些代码,其中许多函数更新“通过引用传递”的项目,沿着下面的 DoSomethingB 的行。作为新手,这对我来说相当不直观。我宁愿让一个函数返回其结果(除非它可能...
    99+
    2024-02-06
  • 测试中 mux.Vars() 返回的是 nil,而不是预期的映射对象
    哈喽!今天心血来潮给大家带来了《测试中 mux.Vars() 返回的是 nil,而不是预期的映射对象》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正...
    99+
    2024-04-04
  • PHP返回当前缓存到期
    这篇文章将为大家详细讲解有关PHP返回当前缓存到期,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP 获取当前缓存到期时间 PHP 中,您可以使用 Cache 类来管理缓存。该类提供了多种方法来获取当前...
    99+
    2024-04-02
  • Shell函数返回值方式
    目录1、返回值的方式:2、return和echo使用场景区别:3、场景示例1、返回值的方式: 方法一:return方法二: echo 2、return和echo使用场景区别: (1).使用return返回值: 使用ret...
    99+
    2022-08-08
    Shell函数返回值 Shell返回值
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作