鱒身(Masu_mi)のブログ

知った事をメモする場所。

Golang:testing Example

GoにExample functionテストがあるの知らなかった。

とりあえずExampleXXXX()って関数名で使える。 キーワードはOutput:, Unordered output:って2つのコメントになる。

ドキュメントによるとExampleテストの関数名で対応する関数やメソッドを解決してGodocのExampleに掲載してくれるらしい。

package main

import "fmt"

func ExampleHello() {
        fmt.Println("hello")
        // Output:
        // hello
}
func ExampleHoge() {
        fmt.Println("goodby")
        // Output:
        // hello
}
func ExampleFooBar() {
        fmt.Println("foo")
        fmt.Println("bar")
        // Unordered output:
        // bar
        // foo
}

上のテストコードの実行結果は下になる。ExampleHoge()を意図的に失敗させている。

$ go test ./ -v
=== RUN   ExampleHello
--- PASS: ExampleHello (0.00s)
=== RUN   ExampleHoge
--- FAIL: ExampleHoge (0.00s)
got:
goodby
want:
hello
=== RUN   ExampleFooBar
--- PASS: ExampleFooBar (0.00s)
FAIL
exit status 1
FAIL    _/Users/masumi/works/blog       0.017s