Socketで初期化されるクラスを作成しています。 NUnit DynamicMockを使ってテストを書いてみたい。NUnit DynamicMockを使用して非インターフェイスおよび非MarshalByRefをモックする方法
Socketのモックを作成するにはどうすればよいですか?
DynamicMock DynamicSocketMock = new DynamicMock(typeof (Socket));
/*No ERROR - BUT I THINK HERE IS THE PROBLEM*/
Socket SocketMock = (Socket) DynamicSocketMock.MockInstance;
/*RUNTIME ERROR*/
ToBeTested Actual = new ToBeTested(SocketMock);
/*NEVER REACHED*/
編集#1
私はそれはしかし、私はまだテストすることはできませんかなり良さそうに見えますMOQ NADに見えました。私の最初の問題は、使用するrigthのバージョンを見つけることでしたが、私はこれを解決したと思います。
var Mock = new Mock<Socket>();
Socket MockSocket = (Socket)Mock.Object;
ToBeTested Actual = new ToBeTested(SocketMock);
Socketにはパラメータのないコンストラクタがありません。今私はそれにパラメータを与えたくない、私はすべてを模擬したい。
編集#2 これは問題であると思われます。lot of peopleターゲットはソケットから直接モックを作成することです。
これは、次に何をしたいかによって異なります。 Moqのような実際のモッキングソリューションでは、特定の呼び出しで特定の値を返すようにモックを設定することができます。しかし、あなたが必要とするのは、オブジェクトをコンストラクタに渡し、それを使って面白いことをしないのであれば、ここのような手動で継承されたモッククラスをいつでも行うことができます。 –