/home/by-natures/dev*

データ界隈で働くエンジニアとしての技術的なメモと、たまに普通の日記。

2018/10/18 Go言語でのテスト(続き)

米国 Yahoo の記事を毎日少しずつ読むようにしているのですが、殺人事件が多いですね。銃事件はもちろん、親族間のトラブルなどでの殺人もよく目にします。strangle(絞殺する)なんて単語も、なんども見かけるので覚えてしまいました。alledge も動詞や副詞(alledgedly)として頻繁に登場しているので合わせて覚えられました。

先ほど読んだのは16歳の息子が父親を射殺するという事件ですが、両親が喧嘩して父が母を絞殺しようとしたので・・・という流れのようです。

www.yahoo.com

ただ、先週末はニューヨーク市のここ25年で初めて銃事件が起きなかった週末なんだとか。それほど銃が身近なものなんですよね。記事によると(少なくともニューヨーク市では)年々銃事件は減少傾向にあるようで、喜ばしいことなのではないでしょうか。

edition.cnn.com

テスト引き続き

あるパッケージをテストする時、それを外部パッケージとして内部ロジックは無視してテストするか(ブラックボックステスト)、同一パッケージにテストを書くことで内部ロジックを反映したテストをするか(ホワイトボックステスト)を選べます。

今回はプライベートメソッドをテストしたかったので後者にしました。ポイントはパッケージ名をテストと実際のコードで同一にすること。同一パッケージなのでインポートする必要はないです。

ema-hiro.hatenablog.com

ただ、個別にテストを実行する場合は、テスト対象のクラスを明示的に引数に加えないと動きませんでした:

$ go test -v path/to/service_test.go path/to/service.go

頭から全てテストを実行したければ面倒なことはせずに以下のコマンドで通ります(カンマは環境に応じて入れ替えるということではなく、以下のコマンドのまま打つ):

$ go test ./...

stackoverflow.com