.net中的模拟方法

时间:2011-04-22 12:48:13

标签: .net mocking

我正在使用模拟测试。我想简单地问一下mock.record()和mock.playback()是做什么的。 如果提供任何简单的示例,我们将非常感谢......

1 个答案:

答案 0 :(得分:0)

在“记录”中,您可以记录一个动作,例如执行存储过程或从数据库中检索记录并将它们放入数据表中。在“回放”中,当回放该记录时,回放的动作将被回放。代码被击中。

Rhinomocks示例

    [Test]
    public void GetHtmlTest()
    {
        var mocks = new MockRepository();
        var dal = mocks.StrictMock<DataAccess>();
        var mockdatatable = new DataTable();

        using (mocks.Record())
        {
            Expect.Call(dal.GetDataTableFromDatabase("", null)).Return(mockdatatable ).IgnoreArguments().Repeat.Any();
            Expect.Call(dal.ExecuteUsingStoredProcedure("", null)).Return(true).IgnoreArguments().Repeat.Any();
        }

        using (mocks.Playback())
        {
            new SomeText(dal);
            var result = SomeText.GetHtml("test","","");
            Assert.AreEqual(result, string.Empty);
        }


    }

而不是在SomeText.GetHtml中进行真正的数据库调用。 mockdatatable由方法返回。