在我使用的其他测试框架中,编写测试助手时,能够自动对其进行测试很好,即测试它们是否通过以及通过。

让我将以下内容用作帮助程序(实际上要复杂得多):

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/

10-13 04:59