func assertEqual[T comparable](t *testing.T, expected T, actual T) {
t.Helper()
if expected == actual {
return
}
t.Errorf("expected (%+v) is not equal to actual (%+v)", expected, actual)
}
func assertSliceEqual[T comparable](t *testing.T, expected []T, actual []T) {
t.Helper()
if len(expected) != len(actual) {
t.Errorf("expected (%+v) is not equal to actual (%+v): len(expected)=%d len(actual)=%d",
expected, actual, len(expected), len(actual))
}
for i := range expected {
if expected[i] != actual[i] {
t.Errorf("expected[%d] (%+v) is not equal to actual[%d] (%+v)",
i, expected[i],
i, actual[i])
}
}
}
3条答案
按热度按时间cyvaqqii1#
正如评论者所提到的,Go没有Assert。
Go语言中一个类似的替代方法是内置函数
panic(...)
,由一个条件门控:字符串
这个article titled "Defer, Panic, and Recover"也可能是信息性的。
vvppvyoh2#
其实我用了一个小帮手:
字符串
然后在用途:
型
失败时,它会生成:
错误连接到我的数据库:<错误从MySQL/数据库>
k4emjkb13#
我在测试中使用了这个通用的Go函数:
字符串
有些人使用testify,但我更喜欢上面的复制+粘贴功能。