私とモッキートの間のレンガの壁を突破しようとしています。正しいimport static Mockitoのステートメントを取得しようとして、髪を引き裂きました。誰かがanyInt()がorg.mockito.Matchersからwhen()が来たと言ってテーブルを投げるだろうと思うでしょうorg.mockito.Mockitoなど。ただし、それは新人にとってはあまりにも役立つでしょうか?
この種のことは、特にアスタリスクで終わる無数のimportステートメントと混ざり合っている場合は、必ずしもあまり役に立ちません。
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
はい、私はEclipse Window-> Preferences-> Java-> Editor-> Content Assist-> Favoritesメカニズムを知っていて使用しようとしています。 、しかし、それは頭の爪に当たらない。
この質問への回答をいただければ幸いです。
どうもありがとう、ラス
問題は、 Hamcrest およびMockitoからの静的インポートには類似した名前がありますが、それぞれMatcherと実際の値を返すことです。
回避策の1つは、HamcrestクラスまたはMockitoクラス、あるいはその両方を単純にコピーし、静的関数を削除/名前変更して、覚えやすく、オートコンプリートに表示されないようにすることです。それが私がしたことです。
また、モックを使用するときは、他のassertThat
とassertions
を優先してverify
を避けるようにします。
assertEquals(1, 1);
verify(someMock).someMethod(eq(1));
の代わりに
assertThat(1, equalTo(1));
verify(someMock).someMethod(eq(1));
Eclipseでお気に入りからクラスを削除し、長い名前を入力した場合(例: org.hamcrest.Matchers.equalTo
そして、Ctrl + Shift + Mを押して「インポートを追加」すると、オートコンプリートはHamcrestマッチャーのみを表示し、Mockitoマッチャーは表示しません。そして、マッチャーを混ぜない限り、これを他の方法で行うことができます。
この状況に対処するために私が行ってきたことは次のとおりです。
新しいテストクラスでグローバルインポートを使用します。
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import static org.mockito.Matchers.*;
テストの作成が完了してコミットする必要がある場合は、Ctrl + Shift + Oキーを押してパッケージを整理します。たとえば、次のものが残っている場合があります。
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.Matchers.anyString;
これにより、インポートする正しいパッケージを見つけようとする「スタック」を起こすことなくコーディングできます。
Is()の場合
import static org.hamcrest.CoreMatchers.*;
AssertThat()の場合
import static org.junit.Assert.*;
When()およびverify()の場合
import static org.mockito.Mockito.*;