- 色々と勘違いを起こしてしまい、起こった問題があったので備忘録
- 同じようなケースで詰まった人がいれば、参考になれば
- あまりないかもしれないですが(^_^;)
起こった問題
- mockito、
any()
を使用してテストしようとした際、Illeagal Access Error
が起こった
解決策
- mockito-allをbuild.gradleから削除すれば解決した
- 依存関係をbuild.gradleする際
mockito-core
とmockito-all
を一緒に使用してしまい、エラーが起きた- any(〇〇.class)を使用したとき、
Illeagal Access Error
になった
- mockito-allとmockito-coreの両方にany()メソッドがあり、呼び出し時に競合した関係でうまくいかなかった
- それぞれのメソッド
- mockito-allのany() →
import static org.hamcrest.Matchers.any;
- mockito-coreのany() →
import static org.mockito.ArgumentMatchers.any;
- mockito-allは更新が止まっており、mockito-coreは現在も更新されているライブラリ
- なので、mockito-coreを残して、mockito-allを依存関係から削除した
経緯
mockito-all、mockito-coreを同時に使用していた理由
- 最初調べた時、mockito-allが出てきたので、使用していた
-
staticメソッドをmockする際にmockito-coreを入れて使用していた
→ mockito-allとmockito-coreを同時に依存関係に入れていた
自分の誤解
- mockito-coreはmockito-allをベースにして、static mockを使用する際追加するべきもの
- 本来はmockito-coreのみでmockito-allは不要
- mockito-allは最終更新がだいぶ古い(2014年)
- mockito-coreは2022年4月現在も更新されているもの
- mockito-coreはmockito-allの後継?
- 確認する限り、mockito-allを使用せず、mockito-coreのみで問題なさそう
コメント