LoginSignup
24
11

More than 5 years have passed since last update.

メソッドに@VisibleForTestingを付けていこうと思った

Posted at

VisibleForTesting概要

  • guavaで定義されているアノテーション
  • テストのためやむを得ずpublicやprotected、package privateにする場合に付与
  • このアノテーションを付ける、付けないで特に動作は変わらない(中身は空のinterface)
    • 実際にソース確かめたい方はこちら

ソースコードのサンプル

@VisibleForTesting
protected void doSomething() {
  // ...
}

こんなアノテーションがあるなんて今まで知らなかった。へぇ〜、確かにぱっと見で「なんでprotectedなの?」っていうのが分かりやすくなった気がする。guavaを使っているプロジェクトなら、せっかくなので使ってみるのがいいかもしれない。

ちなみに、protectedよりpackage privateの方が公開範囲が狭いので、package privateにしておく方が無難かもしれない。(確かJunit実践入門にも書いていたような気がする…)

けっこう使われているの?

GitHubで検索してみると、それなりに使われているアノテーションっぽい。KotlinでもVisibleForTestingを付けているプロジェクトもあった。

他にも似たようなアノテーションってあるの?

com.google.common.annotations
業務で使えそうなのはVisibleForTestingだけかな。

これを書いた背景

2,3年ぶりにJavaを書いていて、学びがあったのでメモしておきました。
もしかしたら日々でAndroidアプリを書いている人だったら常識レベルなのかな?

24
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
11