2010-07-28 39 views
4

我有一個接口,像這樣:測試的方法稱爲多次在MOQ

Interface IWriteFile { 
    string FileName {get;set;} 
    void Open(); 
    void WriteData(string dataToWrite); 
    void Close(); 
} 

我想測試將使用這個接口來填充文件中的類。它會調用WriteData一堆,我只是想測試最終的輸出。有沒有辦法將新的專用字段引入到Mock對象中,每次調用WriteData(Data)時都會附加這個新的專用字段?

我真的只想看看這個文件在一天結束時的樣子。有沒有更好的方法呢?

回答

8

那麼,你需要計算一下它被調用的次數嗎?

int count = 0; 
List<string> items = new List<string>(); 
var mock = new Mock<IWriteFile>(); 
mock.Setup(m => m.WriteData(It.IsAny<string>())) 
    .Callback((string data) => { items.Add(data); count++; }); 
+1

+1。這很好。我真的很喜歡Moq。 – fletcher 2010-07-28 16:30:55

+0

不是一個計數..但這將工作...而不是增加一個int,我需要追加到一個字符串..完美..謝謝... Moq + Nunit再次拯救我的理智 – Rob 2010-07-28 17:15:27