【问题标题】:Basic NMock database examples for CRUD applicationCRUD 应用程序的基本 NMock 数据库示例
【发布时间】:2009-10-16 19:07:09
【问题描述】:

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

谢谢,

克里斯

【问题讨论】:

  • 您想证明正在调用数据层(使用 Expect)还是为协作对象提供一些无害的行为(使用 Stub)?

标签: database unit-testing tdd mocking nmock


【解决方案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();
    }

不过,我更喜欢最小起订量: http://code.google.com/p/moq/

【讨论】:

    【解决方案2】:

    “数据库调用”是一个可以猜测的粗略术语 - 您是指测试 DAL,还是测试其之上的层?

    如果您的意思是测试您的 DAL,您需要查看如何获得实际的 DataReader 或 DataTable 或其他任何东西,以便您可以将其替换为 mock。

    请参阅此类涵盖 IoC and mocking data access 的博客文章,或此类文章 that cover mocking a datareader 以了解入门。

    【讨论】:

      猜你喜欢
      • 2011-03-02
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 2014-10-18
      • 2017-12-18
      • 1970-01-01
      相关资源
      最近更新 更多