我正在编写一个测试实用程序函数库,我希望它们能够自己测试。
一个这样的功能的例子是:
func IsShwifty(t *testing.T, foo string) bool {
result, err := bar.MyFunction(string)
if err != nil {
t.Error("Failed to get shwifty: " + foo, err)
}
return result == "shwifty"
}
我想写一个TestIsShwifty
,其中包含要使MyFunction
返回错误,然后生成t.Error
的内容。然后,我希望TestIsShwifty
传递类似的内容:
func TestIsShwifty(t *testing.T) {
if doesError(t, IsShwifty(t)) == false {
t.Error("Oh know! We didn't error!")
}
}
Go中有可能吗?
答案 0 :(得分:1)
我明白了!
我只需要创建一个单独的testing.T
实例。
func TestIsShwifty(t *testing.T) {
newT := testing.T{}
IsShwifty(newT)
if newT.Failed() == false {
t.Error("Test should have failed")
}
}