今時のMockitoのfinal classの扱いについて

2017-09-29T01:00:00+09:00 Java

どうやらMockito2で対策されている模様。知らなかったのでやってみた

前回のエントリーのKotlinプロジェクトをそのまま使う

方法1: src/test/resources/mockito-extensions/org.mockito.plugins.MockMakerを定義する

mock-maker-inline

を定義するだけ

方法2: mockito-inlineの依存性を付与する

testCompile "org.mockito:mockito-inline:+"

参考: https://qiita.com/Tsuyoshi_Murakami/items/2fa5c0a41432f705400a

参考: https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2#mock-the-unmockable-opt-in-mocking-of-final-classesmethods

上記参考にも書いてあるけど、あくまでIncubatingみたいなので今後変更がある可能性もありえそうとのこと。staticなどには対応はしていないのでもちろんのことながらやはりPowerMockの必要性があるとのこと

とりあえずはfinal classをmockしたいっていう理由だけに伴うのであれば現状Mockitoだけで対応することが可能になっている模様

Robolectric3.4.2+Powermock1.7.3でのテスト (2017版) Kotlin Unit Testing (1)