Я новичок в moq и настраиваю mocks, поэтому я мог бы сделать с небольшой помощью. Как сделать макет SqlDataReader с помощью Moq?
Update
После дальнейшего тестирования это то, что у меня есть до сих пор:
private IDataReader MockIDataReader()
{
var moq = new Mock<IDataReader>();
moq.Setup( x => x.Read() ).Returns( true );
moq.Setup( x => x.Read() ).Returns( false );
moq.SetupGet<object>( x => x["Char"] ).Returns( 'C' );
return moq.Object;
}
private class TestData
{
public char ValidChar { get; set; }
}
private TestData GetTestData()
{
var testData = new TestData();
using ( var reader = MockIDataReader() )
{
while ( reader.Read() )
{
testData = new TestData
{
ValidChar = reader.GetChar( "Char" ).Value
};
}
}
return testData;
}
Проблема в том, что я читаю. Читайте в моем методе GetTestData(), он всегда пуст. Мне нужно знать, как сделать что-то вроде
reader.Stub( x => x.Read() ).Repeat.Once().Return( true )
в соответствии с примером игры rhino: Издевательство над DataReader и получение Rhino.Mocks.Exceptions.ExpectationViolationException: IDisposable.Dispose(); Ожидаемый # 0, фактический номер 1