在我使用的其他测试框架中,编写测试助手时,能够自动对其进行测试很好,即测试它们是否通过以及通过。
让我将以下内容用作帮助程序(实际上要复杂得多):
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
。 最佳答案
您可以执行以下操作:
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)
}
关于unit-testing - 我可以预期(要求)通过测试失败吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42599382/