私は、特定のネットワークモジュールがその入力ストリームと出力ストリームにどのように影響するかをテストするために、JUnitとMockitoを使用してきました。テストを容易にするために、一連のモックネットワークオブジェクトストリーム(つまり、ObjectInputStreamのインスタンスとObjectOutputStreamのインスタンス)を作成し、次のコードスニペットのような方法でテストするメソッドをスタブ化しました。
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import static org.mockito.Mockito.*;
import org.junit.Test;
public class NetworkTester
{
@Test
public void ModuleRespondsToServerRequest() throws Exception
{
ObjectInputStream mockClientIn = mock(ObjectInputStream.class);
ObjectOutputStream mockClientOut = mock(ObjectOutputStream.class);
when(mockClientIn.readObject()).thenReturn("Sent from Server");
// Initialize module and connect it to the network...
verify(mockClientOut, timeout(100).atLeastOnce()).writeObject(isNotNull());
}
}
ただし、このコードをコンパイルして実行しようとすると、「when(mockClientIn.readObject())。thenReturn( "Sent from Server");」の行でnullポインター例外が発生します。これは、「readObject()」関数がスタブされたオブジェクトで呼び出されたときにnullポインターを返すという事実が原因であると思いますが、この動作をバイパスできるかどうかはわかりません。
Mockitoを使用してこの関数(または同様のnullを返す関数)をスタブする方法はありますか?よろしくお願いします。