【问题标题】:Unit test a method without a return value in golang在golang中对没有返回值的方法进行单元测试
【发布时间】:2022-12-18 18:29:00
【问题描述】:

我想为不返回任何内容的方法编写单元测试。可能吗?如果是,我们如何断言? 这是理解问题的示例代码。

func (u myService) myMethod(ctx context.Context, param1 string) {
    // do something and return nothing
}

【问题讨论】:

  • 该方法有什么作用?
  • @HymnsForDisco,根据我的场景,该方法用于记录一些操作更新。
  • 只需观察它的副作用。
  • 总是,如果一个函数不返回任何东西,它可能有副作用,你测试它的副作用。如果它不返回任何东西并且没有任何副作用,实际上它是否被调用并不重要(如果重要,它必须有副作用)。
  • “该方法用于记录一些操作更新”然后您断言是否记录了这些操作更新。

标签: go


【解决方案1】:

如我所见,您为您的方法提供了上下文,在这种情况下,您可能在那里存储了一些信息,因此您可以在测试用例结束时从上下文中检索信息。

ctx.Value("myKey")

【讨论】:

    猜你喜欢
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2013-04-03
    • 1970-01-01
    • 2014-05-10
    • 2019-11-17
    相关资源
    最近更新 更多