2011-04-22 52 views
2

我正在使用模拟测试。我只想问一下mock.record()和mock.playback()是做什么的。 如果将提供任何简单的示例,它将被高度赞赏...模拟方法.net

回答

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由方法返回。