11章 テスト

11.6 Example関数

すごい。こんなものあるのかと思いました。

func ExampleAdd() {
    fmt.Println(Add(3, 4))
    fmt.Println(Add(5, -1))
    // Output:
    // 7
    // 4
}

このようなものをhoge_test.goに書いておき、godocするとドキュメントにコード例として表示されます。

さらにこのコードはgo testで実際に実行されテストもされるので、型が違ったり結果が違うなど、ドキュメントが古くならないとのことです。

よくわかっていないのですが、fmtで印字されたものがチェックされるみたいです。

自分で作成したディレクトリでgodocを使ってみたかったのですが、やり方がわかりませんでした。

GOPATHで設定されている%USERPROFILE%\go/srcにコピーしてgodoc実行してみるとできました。

現在のディレクトリで実行することはできないんでしょうか?

これで11章が終わり、次は12章なのですが

この本の最後の二つの章では、reflectパッケージとunsafeパッケージを説明します。それらは、Goプログラマが日常的に使うパッケージではありませんし、使う必要があるGoプログラマはさらに少ないでしょう。もし、みなさんが相当な量のGoプログラムをまだ書いていないのであれば、今がGoプログラムを書く絶好の時期でしょう。

これで一旦読了としてしまったほうがいいのかもしれません。
流し読み程度で読み進めようと思います。


Example関数のような手法は、一般的にはDoctestというみたいです。