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

时间:2020-05-20 01:42:12

标签: go go-testing

我正在尝试改善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")

这个存在吗?如果不存在,我可以添加吗?

1 个答案:

答案 0 :(得分:1)

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

通常使用的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()