1. ホーム
  2. java

[解決済み] Mockitoのコンストラクトのインポート静的文の検索

2023-08-01 16:17:09

質問

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。 の仕組みを試しています。それは役に立ちますが、正鵠を得たものではありません。

何か回答があればお願いします。

ありがとうございました。 Russ

どのように解決するのですか?

問題は、静的インポートが ハムクレスト と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のFavoritesからクラスを削除して、長い名前を入力すると、例えば org.hamcrest.Matchers.equalTo と入力し、CTRL+SHIFT+Mで「インポートを追加」すると、オートコンプリートはHamcrestマッチャーのみを表示し、Mockitoマッチャーは表示されません。 また、マッチャーを混在させない限り、他の方法でも可能です。