0xf

日記だよ

golang の Example Testing 初めて触ったけどこれは便利じゃん

//main.go
package main

import (
    "fmt"
    "os"
)

func main() {
    os.Exit(_main())
}

func _main() int {
    fmt.Println("hello world")
    return 0
}

こういう感じになってたとき、

//main_test.go
package main

func _mainTest() {
    _main()
}

func ExampleTest_main() {
    _mainTest()

    // Output:
    // hello world (bad)
}

としておくと、

% go test .
ok      example.com/sample     0.627s

失敗したら

% go test .
--- FAIL: ExampleTest_main (0.00s)
got:
hello world
want:
hello japan
FAIL
FAIL    example.com/sample/cmd/sample   0.222s
FAIL

手軽。