CRUD应用程序的基本NMock数据库示例

时间:2009-10-16 19:07:10

标签: database unit-testing tdd mocking nmock

我正在寻找一些使用NMock2模拟CRUD应用程序数据库调用的基本示例。

谢谢,

克里斯

2 个答案:

答案 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的帖子,以便开始使用。