我正在寻找一些使用NMock2模拟CRUD应用程序数据库调用的基本示例。
谢谢,
克里斯
答案 0 :(得分:1)
设定:
[SetUp]
public void SetUp()
{
mocks = new Mockery();
mockDBLayer = _mocks.NewMock<IDBLayer>();
//Inject the dependency somehow
sut = new SUT(_mockDBLayer );
}
测试:
[Test]
public void testMethodName_TestCase()
{
var dbRetrunValue = //whatever type
Expect.Once.On(mockDBLayer).Method("dbMethod").Will(Return.Value(dbRetrunValue));
//exercise
var actual = sut.methodName();
//Assert
...
}
验证是否需要
[TearDown]
public void TearDown()
{
mocks.VerifyAllExpectationsHaveBeenMet();
}
我更喜欢Moq: http://code.google.com/p/moq/
答案 1 :(得分:1)
“数据库调用”是一个粗略的术语 - 你的意思是测试你的DAL,还是测试一个以上的层?
如果你的意思是测试你的DAL,你需要看看你是如何获得实际的DataReader或DataTable,或者其他什么,以便你可以用模拟替换它。
请参阅此类博客文章,其中包含IoC and mocking data access或类似此that cover mocking a datareader的帖子,以便开始使用。