在moq中测试多次调用的方法

时间:2010-07-28 16:12:43

标签: c# tdd moq

我有这样的界面:

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

我想测试一个将使用此接口填充文件的类。它会多次调用WriteData,我只想测试最终输出。有没有办法向Mock对象引入一个新的私有字段,每次调用WriteData(Data)时都会附加它?

我真的只想看看文件在一天结束时会是什么样子。有更好的方法吗?

1 个答案:

答案 0 :(得分: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++; });