2011-04-22 96 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由方法返回。