在我使用的其他测试框架中,在编写测试助手时,很高兴能够自动测试它们,即测试它们是否失败以及传递。
让我使用以下内容作为助手(实际上它要复杂得多):
func IsRedirect(t *testing.T, code int) {
assert.True(t, code >= 300)
assert.True(t, code < 400)
}
然后确定,我可以写:
func TestIsRedirect(t *testing.T) {
IsRedirect(t, http.StatusSeeOther)
}
但我也想写一些类似的东西:
func TestNotRedirect(t *testing.T) {
t.RequireFailure()
IsRedirect(t, http.StatusOK)
}
注意,我真的不想写:
func IsRedirect(code int) bool
因为该函数不仅仅有一两个条件可能会失败,而且我希望能够针对特定的失败案例assert
。
答案 0 :(得分:0)
您可以执行以下操作:
func IsRedirect(t *testing.T, code int, b bool) {
assert.Equal(t, b, code >= 300)
assert.Equal(t, b, code < 400)
}
func TestNotRedirect(t *testing.T) {
IsRedirect(t, http.StatusOK, false)
}