Javaでテスト書くときのstatic import

仕事やめたり復職したりしてました。

ところでJavaユニットテスト書くときにstatic importを多用するのですが、 IntelliJ使うことにしたのですが、static importEclipseと違ってうまく補完してくれませんしorganize importとかしてると、使ってない隙を突いて消してしまうので、LiveTemplateに以下を保存。

import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
import static org.mockito.Mockito.*;

import static org.junit.Assert.*;

assert***とかfailがここに入ってる。 assertThatも最近のJUnitならこっちに入ってるので、hamcrestのMatcherAssertはインポート不要。

import static org.hamcrest.Matchers.*;

JUnitに含まれているorg.hamcrest.CoreMatchers と違って、hamcrestの全部入ってる版を入れないといけないが、 入ってるならMatchersはCoreMathcersのスーパーセットなので、こっちでよい。

import static org.mockito.Mockito.*;

Mockitoのverifyとかwhenとかはここ。

import static org.mockito.ArgumentMatchers.*;

Mockitoのanyとかがここ。org.mockito.Matchers はdeprecatedとなり、これを使うのが正しいようだ。

ArgumentMatchersはMockito2から。そしてMockitoがArgumentMatchersを継承しているので、これは要らない。