我是新来的moq和设置模拟,所以我可以做一点帮助。如何使用Moq模拟SqlDataReader?如何使用Moq模拟SqlDataReader - 更新
更新
经过进一步的测试,这是我到目前为止有:
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.Read它总是空的问题。我需要知道如何做类似的东西
reader.Stub(x => x.Read()).Repeat.Once().Return(true)
我没有模拟SqlDataReader的经验,但是,如果可以的话,你应该模拟接口。我已经查找了你,也许这篇文章可以帮助雅:] http://stackoverflow.com/questions/1792984/mocking-a-datareader-and-getting-a-rhino-mocks-exceptions-expectationviolationexc它使用Rhinomocks但这个想法是一样的。建议那里,你应该模拟IDataReader。当你嘲笑它的时候,你不应该在模拟^^(^)上做任何问题^^如果你已经试着嘲笑一个接口,也许你可以通过发布一些示例代码告诉我们你卡在哪里:] – Bas 2010-04-15 09:13:22