クラス内のインスタンスをモックしようとしています。これはクラス(簡略化)です:
public void CreatePhotos(string elementType)
{
var foo = new PicturesCreation();
//some code here...
if (elementType == "IO")
{
foo.CreateIcons(client, new PicturesOfFrogsCreation(), periodFrom, periodTo)
}
}
そのため、ユニットテスト用にこの「newPicturesOfFrogsCreation()」をモックして、CreateIconsがこのパラメーターで呼び出されるかどうかを確認しようとしています。テストでこれを達成するためにRhinoMocks/ AssertWasCalledメソッドを使用しようとしましたが、インターフェイスをモックする方法を知っているだけなので、機能していないようです。これをモックすることが可能かどうか知っていますか?
更新:PicturesCreationクラスのコード:
internal sealed class PicturesCreation
{
public void CreateIcons(IPictures foo, int periodFrom, int periodTo)
{
foo.CreateIcons(periodFrom, periodTo);
}
}
そしてPicturesOfFrogsCreationのコード:
internal sealed class PicturesOfFrogsCreation : IPictures
{
public void CreateIcons(int periodFrom, int periodTo)
{
//Code that implements the method
}
}
私はこのテストを書きましたが、うまく書かれているかどうかはわかりません。
public void Create_commitment_transaction_should_be_called_for_internal_order()
{
IPicture fooStub = RhinoStubWrapper<IPicture>.CreateStubObject();
rebuildCommitmentsStub.StubMethod(x => x.CreateIcons(Arg<int>.Is.Anything, Arg<int>.Is.Anything));
PicturesProcess.CreatePhotos("IO");
rebuildCommitmentsStub.AssertWasCalled(x => x.CreateIcons(Arg<int>.Is.Anything,Arg<int>.Is.Anything));
}
前もって感謝します!
A。