我正在寻找一些使用 NMock2 模拟 CRUD 应用程序的数据库调用的基本示例。
谢谢,
克里斯
设置:
[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();
}
不过,我更喜欢起订量: http ://code.google.com/p/moq/
“数据库调用”是一个粗略的猜测 - 你的意思是测试你的 DAL,还是测试上面的一层?
如果您的意思是测试您的 DAL,您需要查看如何获得实际的 DataReader 或 DataTable 或其他任何东西,以便您可以将其替换为 mock。
请参阅此类涵盖IoC 和模拟数据访问的博客文章,或此类涵盖模拟数据读取器 以入门的文章。