Ich verwende Moq und habe die folgende Schnittstelle:
public interface IGameBoard : IEnumerable<PieceType>
{
...
}
public class GameBoardNodeFactory
{
public virtual GameBoardNode Create (int row, int column, IGameBoard gameBoard)
{
...
}
}
Dann habe ich einen Test wie diesen:
var clonedGameBoardMock = new Mock<IGameBoard> (MockBehavior.Loose);
var gameBoardNodeFactoryMock = new Mock<GameBoardNodeFactory> ();
gameBoardNodeFactoryMock.Setup (x =>
x.Create (
position.Row,
position.Column,
clonedGameBoardMock.Object)).Returns (new GameBoardNode { Row = position.Row, Column = position.Column });
Aber dann gameBoardNodeFactoryMock.Object.Create (position.Row, position.Column, clonedGameBoardMock.Object) wirft eine NullReferenceException. Ich habe versucht, eine Attrappe für die IGameBoard zu erstellen, so dass es nicht IEnumerable<PieceType> Schnittstelle erweitern und dann funktioniert es.
Für jede Hilfe sind wir dankbar.