go的入坑之路-测试和性能调优

2022-07-16  本文已影响0人  幻影翔

测试

func TestNonrepeatingsubstr(t *testing.T) {
    tests := []struct {
        s   string
        ans int
    }{
        // Normal cases
        {"jack006", 5},
        {"aadewr", 5},
        {"wsxdswws", 4},

        // Edge cases
        {"", 0},
        {"b", 1},
        {"aaaaaaaaaaaaaaaaaaaa", 1},

        // chinese support
        {"这里是慕课网", 6},
        {"黑化肥挥发发灰会花飞灰化肥挥发发黑会飞花", 8},
    }
    for _, tt := range tests {
        actual, _ := lengthOfNonRepeatingSubStr(tt.s)
        if actual != tt.ans {
            t.Errorf("Got %d for input %s, want %d", actual, tt.s, tt.ans)
        }
    }
}

代码覆盖率测试

性能测试

func BenchmarkSubstr(b *testing.B) {
    s := "黑化肥挥发发灰会花飞灰化肥挥发发黑会飞花"
    ans := 8

    for i := 0; i < b.N; i++ {
        actual, _ := lengthOfNonRepeatingSubStr(s)
        if actual != ans {
            b.Errorf("Got %d for input %s, want %d", actual, s, ans)
        }
    }
}

代码覆盖

性能测试

文档

上一篇 下一篇

猜你喜欢

热点阅读