@VisibleForTestingについて

今までなんとなく使ってきた@VisibleForTestingを改めてちゃんと調べてみる

まずはドキュメント

Annotates a program element that exists, or is more widely visible than otherwise necessary, only for use in test code.

テストコードのために必要以上に可視性があるプログラムにつくらしい。和訳が難しい。

つまり、アプリケーション上ではprivateで使われるメソッドを、テストコードのためだけにpublicとかprotectedにしなくちゃいけないときにつけるらしい。

メソッドの挙動を変えるわけではないが、コードを見た時になんでこの公開範囲になるのかがわかりやすくなる。