0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mockitoのspyを使って部分的にモック化

Posted at

Mockitoの標準的な使用方法では既存のインスタンスのpublicメソッドを直接モックにすることはできません。もしそれが必要であれば、Mockitoのspyを使って部分的にモック化することが可能です。

// モックを作成
MyClass mockInstance = Mockito.mock(MyClass.class);

// publicメソッドの動作を設定
Mockito.when(mockInstance.somePublicMethod()).thenReturn("Mocked Value");

// spyを使う場合
MyClass realInstance = new MyClass();
MyClass spyInstance = Mockito.spy(realInstance);

// publicメソッドをモックにする
Mockito.doReturn("Mocked Value").when(spyInstance).somePublicMethod();

spyを使用することで、元のインスタンスの振る舞いを一部のみモックに置き換えることができるため、柔軟に制御が可能です。ただし、spyは通常のモックと異なり、元のインスタンスのメソッドもデフォルトでは呼び出されるため、必要な部分だけをモックに切り替えることに注意が必要です。

設計段階で、別クラス化しておいたほうがテストコードが書きやすいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?