以下の内容はhttps://arsinput.hatenablog.jp/entry/2022/05/03/120000より取得しました。


【Java】@Spyでテストクラスの一部メソッドをモックする

スポンサードリンク

JUnitのモックのお話です。

 

基本的にJUnitを使ったテストでは、下記のようにテスト対象のクラスに、そこから呼び出されるクラスのモックを注入(inject)します。

 

public ClassATest {
    @Injectmocks
    ClassA aCls;

    @Mock
    ClassB bCls;

(以下略)

 

でも、クラス単位でしかモックできないと、テスト対象のクラスの中にある特定のメソッドをモック化して使用したい場合、困りますよね。

 

そんな時はクラス中の一部をモックする@Spyアノテーションの書いてあげると解決できます。

 

public ClassATest {
    @Spy
    @Injectmocks
    ClassA aCls;

(以下略)

 

テスト対象のクラスに2つのアノテーションがついていますが、問題ありません。

 

@Mockは宣言した時点でクラスそのものをモックしてしまいますが、@Spyであればメソッドに対して処理を書いてあげた段階でそのメソッドのみをモックしてくれるため、JUnitを使ったテストの幅が広がります!

 

 

----------

ゴールデンウィーク中に、JUnitに少しは詳しくなりたいです。

Java開発は感覚でなんとかなりますが、JUnitはしっかりスキルとして修得しておかないとなんともならないと思ってます。

 




以上の内容はhttps://arsinput.hatenablog.jp/entry/2022/05/03/120000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14