1

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

谢谢,

克里斯

4

2 回答 2

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/

于 2009-10-16T19:19:59.357 回答
1

“数据库调用”是一个粗略的猜测 - 你的意思是测试你的 DAL,还是测试上面的一层?

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

请参阅此类涵盖IoC 和模拟数据访问的博客文章,或此类涵盖模拟数据读取器 以入门的文章。

于 2009-10-16T19:26:09.110 回答