登录
首页 >  Golang >  Go问答

为什么 t.Fail() 不接受字符串参数?

来源:stackoverflow

时间:2024-03-17 11:42:26 332浏览 收藏

在 Golang 测试中,使用 `t.Fail()` 来使测试失败,但它不接受字符串参数。这迫使开发者使用 `t.Fail()` 和 `t.Logf()` 的组合来同时使测试失败并记录原因。本文探讨了为什么没有一个单一的调用来实现此目的,并提出了添加此功能的可能性。

问题内容

我正在努力改进我的 golang 测试。我正在读这个:https://ieftimov.com/post/testing-in-go-failing-tests/

我经常使用 t.fatal("message"),而我应该使用以下组合:

t.fail()
t.logf()

那么到底为什么没有一个调用可以使测试失败并记录原因呢?有没有办法让我将这样的方法添加到 test.testing 实例中?我只想做:

t.FailWithReason("the reason the test failed")

这个是否存在,如果不存在我可以以某种方式添加它吗?


解决方案


查看测试包的文档和源代码。

典型用途documentation has an example

func testabs(t *testing.t) {
    got := abs(-1)
    if got != 1 {
        t.errorf("abs(-1) = %d; want 1", got)
    }
}

t.errorf 的文档是:

// errorf is equivalent to logf followed by fail.

这与您所说的非常相似:

t.Fail()
t.Logf()

今天关于《为什么 t.Fail() 不接受字符串参数?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>