[解決済み] Mockitoです。モック・プライベート・フィールドの初期化
2022-06-04 08:56:10
質問
インラインで初期化されるフィールド変数をモック化する方法は?
class Test {
private Person person = new Person();
...
public void testMethod() {
person.someMethod();
...
}
}
ここでは、モックである
person.someMethod()
をテストしながら
Test.testMethod()
メソッドの初期化をモック化する必要があります。
person
変数をモックする必要があります。何か手がかりはありますか?
編集してください。 Personクラスを変更することはできません。
どのように解決するのですか?
ここに投稿するのを忘れていましたが、この問題の解決策をすでに見つけています。
@RunWith(PowerMockRunner.class)
@PrepareForTest({ Test.class })
public class SampleTest {
@Mock
Person person;
@Test
public void testPrintName() throws Exception {
PowerMockito.whenNew(Person.class).withNoArguments().thenReturn(person);
Test test= new Test();
test.testMethod();
}
}
このソリューションのキーポイントは
-
PowerMockRunnerで自分のテストケースを実行する。
@RunWith(PowerMockRunner.class)
-
Powermockに準備を指示する
Test.class
を用意するよう、Powermock に指示します。@PrepareForTest({ Test.class })
-
そして最後にPersonクラスのコンストラクタのモックを作成します。
PowerMockito.mockStatic(Person.class);
PowerMockito.whenNew(Person.class).withNoArguments().thenReturn(person);
関連
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策
-
javax.net.ssl.SSLException: 読み取りエラー: ssl=0xdeae5100: システムコール中の I/O エラー、接続 res
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] ArrayListの初期化を1行で行う。
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Mockitoでvoidメソッドをモックする方法
-
[解決済み] Mockitoを使用して、あるメソッドをモックし、他のメソッドをモックしない
-
[解決済み] MockitoでSpringの自動配線された@Valueフィールドをモックするにはどうすればよいですか?
-
[解決済み] @RunWith(MockitoJUnitRunner.class) vs MockitoAnnotations.initMocks(this)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スタイルが読み込まれず、ブラウザコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
ファインバグタイプ
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
Spring Boot による HTTPS アクセスの設定
-
javaで非静的な解を静的な参照にすることができない
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
Spring BootのテストメソッドFailed to load ApplicationContextの問題を解決する
-
org.glassfish.jersey.servlet.ServletContainer