Golang:testing Example

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

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
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()を意図的に失敗させている。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$ 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
comments powered by Disqus