Go 为什么';t.Fail()是否接受字符串参数?
我正在努力改进我的Golang测试。我在读这篇文章: 我经常使用Go 为什么';t.Fail()是否接受字符串参数?,go,go-testing,Go,Go Testing,我正在努力改进我的Golang测试。我在读这篇文章: 我经常使用t.Fatal(“message”),而我本应该使用以下组合: t.Fail() t.Logf() 那么,为什么在地球上没有一个单一的调用,然后可以失败的测试和日志的原因呢?我有没有办法将这样的方法添加到test.Testing实例中?我只想做: t.FailWithReason("the reason the test failed") 这是否存在?如果不存在,我是否可以添加它?查看测试包的文档和源代码 典型用途: func
t.Fatal(“message”)
,而我本应该使用以下组合:
t.Fail()
t.Logf()
那么,为什么在地球上没有一个单一的调用,然后可以失败的测试和日志的原因呢?我有没有办法将这样的方法添加到test.Testing实例中?我只想做:
t.FailWithReason("the reason the test failed")
这是否存在?如果不存在,我是否可以添加它?查看测试包的文档和源代码 典型用途:
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.Fatal
有问题?它似乎做了你想做的事。如果您不想FailNow
,也会出现t.Error
。也许t.Fatal()
用词不当,我不希望进程退出?是的,t.Fatal
不退出进程。您的defer
s甚至仍将运行。如果这符合我的要求,那肯定是用词不当。你为什么认为这是用词不当?