go test 测试示例

2018-11-27  本文已影响0人  bocsoft

示例

如果你真想多测试的更加深入,可以写一些 [示例]你将在标准库的文档中找到许多示例。
通常代码示例与实际代码所做的工作相比是过时的,因为它们处于真实的代码之外并且不会被检查。
Go 示例执行起来就像测试一样,所以你可以对用示例来反映代码的实际功能有自信。
作为包的测试套件的一部分,示例会被编译(并可选择性地执行)。
与典型的测试一样,示例是存在于一个包的 _test.go 文件中的函数。
如果你的代码更改了,导致示例不再有效,那么你的构建(build)也将失败。
示例将出现在 godoc 的文档中,这将使你的代码更容易理解。

package integers

func Add(x,y int) int {
    return x + y
}


package integers

import (
    "fmt"
    "testing"
)

func TestAdder(t *testing.T) {
    sum := Add(2, 2)
    expected := 4

    if sum != expected {
        t.Errorf("expected '%d' bug got '%d'", expected, sum)
    }
}
//与典型的测试一样,示例是存在于一个包的 _test.go 文件中的函数
//如果你的代码更改了,导致示例不再有效,那么你的构建(build)也将失败。
//请注意,如果删除注释 「//Output: 6」,示例函数将不会执行。虽然函数会被编译,但是它不会执行
func ExampleAdd() {
    sum := Add(1,5)
    fmt.Println(sum)
    // Output: 6
}

输出结果为:
=== RUN   TestAdder
--- PASS: TestAdder (0.00s)
=== RUN   ExampleAdd
--- PASS: ExampleAdd (0.00s)
PASS



上一篇 下一篇

猜你喜欢

热点阅读