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

Rob*_*Rob 4 c# tdd moq

我有这样的界面:

Interface IWriteFile {
  string FileName {get;set;}
  void Open();
  void WriteData(string dataToWrite);
  void Close();
}
Run Code Online (Sandbox Code Playgroud)

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

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

Mat*_*ott 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++; });
Run Code Online (Sandbox Code Playgroud)