[解決済み] Mockitoを使用してクラスのメンバ変数をモック化する
2022-04-27 17:13:02
質問
私は開発、特にユニットテストについて初心者です。 私は私の要件は非常に単純だと思いますが、私はこれについての他の考えを知りたいです。
例えば、次のような2つのクラスがあるとします。
public class First {
Second second ;
public First(){
second = new Second();
}
public String doSecond(){
return second.doSecond();
}
}
class Second {
public String doSecond(){
return "Do Something";
}
}
をテストするためのユニットテストを書いているとしましょう。
First.doSecond()
メソッドを使用します。しかし、もし私が
Second.doSecond()
クラスはこのようなものです。 私はこれを行うためにMockitoを使用しています。
public void testFirst(){
Second sec = mock(Second.class);
when(sec.doSecond()).thenReturn("Stubbed Second");
First first = new First();
assertEquals("Stubbed Second", first.doSecond());
}
モッキングが効かず、アサーションに失敗しているのがわかります。 テストしたいクラスのメンバ変数をモック化する方法はないのでしょうか??
どのように解決するのですか?
モックを渡せるように、メンバ変数にアクセスする方法を用意する必要があります(最も一般的な方法は、パラメータを受け取るセッタ・メソッドやコンストラクタでしょう)。
もしあなたのコードがこれを行う方法を提供しないなら、それはTDD(テスト駆動開発)のための誤ったファクタリングです。
関連
-
[解決済み] 同じメソッドを同じ引数で複数回呼び出した状態でMockitoを使用する
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] Mockitoでvoidメソッドをモックする方法
-
[解決済み] Mockitoを使用して特定のメソッドが呼び出されていないことを確認するにはどうすればよいですか?
-
[解決済み] モッキングとは?
-
[解決済み] Mockitoは複数回呼び出されたメソッドの引数をキャプチャできますか?
-
[解決済み] Mockitoを使用して、あるメソッドをモックし、他のメソッドをモックしない
-
[解決済み] voidメソッドが例外を投げるかどうかをMockitoがテストする
-
[解決済み] Mockitoで静的メソッドをモックする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
javaの実行中に「javaの例外が発生しました」と表示された場合はどうすればよいですか?
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
final, finally, finalizeの違いについて話してください。
-
JavaMailのメール送信が失敗するケースとその説明の分析
-
が 'X-Frame-Options' を 'deny' に設定しているため、フレーム内にある。
-
javaでクラスを作成すると、enclosing classでないように見える
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について
-
[解決済み】@Resourceと@Autowiredの比較