nakayama

nakayama blog page

Backend day4

前回の続きから(1.4.1.2)

bytes.Buffer型には出力されるデータが入っている。何も入ってい無い場合はt(*testing.T型).Errorを呼び出してエラーさせてテストを失敗させる処理をする。

この時点では、New関数が無いため、エラーが起きる。このやり方は一見おかしく思うが、TDDのやり方にそったred-green testingというやり方であり、最初にユニットテストを失敗させて、そのテストを成功させるために最小限の処理をする事を繰り返してコードを改善していくためなんら問題はない。問題がるというのが問題ないというなんともおかしな話しだ。

1*.4.1.3*

command: go test -cover

このコマンドはテストが全て成功した場合のカバレッジを算出する、

1.4.1.5

tracerメソッドは小文字から始まっており、外部には公開され無い。しかし、New関数の中で、tracerが戻り値となっている。ここでのtracerはそのメソッドであるTracerが公開されているため、その引数であるTracerインターフェースに従っているオブジェクトを受け取ることのみ、外部に公開している。なので、tracerが他のメソッドやフィールドを公開していても、ユーザーには見え無い様な実装になっている。その結果、パッケージにAPIをクリーンでシンプルな状態にできる。