0
私はクラスPositionを持っており、メソッドCreatePositionをテストしたいと思います。動的に返す引数を持つモックオブジェクト設定メソッド
private void AddToAllowedPositions(IPosition positionCreator)
{
int horizontalIndex = piece.Position.IndexHorizontal;
int verticalIndex = piece.Position.IndexVertical;
while(IndexesAreValid(horizontalIndex, verticalIndex)
{
IPosition currentPosition = positionCreator.CreatePosition(horizontalIndex, verticalIndex);
allowedPosition.Add(currentPosition);
}
}
私の問題: - :
public Position CreatePosition(int horizontalIndex, int verticalIndex)
{
return new Position(horizontalIndex, verticalIndex);
}
インタフェースIPosition:パラメータの各ペアのためには、新しいポジションを作成
public interface IPosition
{
char HorizontalPosition { get; }
int VerticalPosition { get; }
int IndexHorizontal { get; }
int IndexVertical { get; }
Position CreatePosition(int horizontalIndex, int verticalIndex);
}
方法CreatePositionが、ここで使用され、それがダイナミックだされているメソッドは次のようになりますメソッドCreatePositionを偽装する方法がわからないということです。
私はこのようなMock<IPosition>
を作成しました:
Mock<IPosition> positionCreator = new Mock<IPosition>();
positionCreator.Setup(positionCreator.Object.CreatePosition(?, ?)).Returns(??);
それは本当のポジションをやっているだけのように、動的パラメータを受け入れ、ダイナミックな結果を返しますので、私は偽物その方法をしたいと思います。これは可能ですか?
おそらく
お返事ありがとうございます。新しいポジションの代わりにモックオブジェクトを返す方法はありますか?モックのようなもの? –
FrenkyB
いいえ、返すメソッドは、実際のメソッド( 'CreatePosition')がテスト中に呼び出されたときに返すものを記述します。メソッドの戻り値の型と同じ型のパラメータを受け取る必要があります。 –
これは問題です。 IsAnyはintを返す汎用的なメソッドであり、整数ではありません。 –
FrenkyB