Testing a method called many times in moq
I have an interface like so:
Interface IWriteFile {
string FileName {get;set;}
void Open();
void WriteData(string dataToWrite);
void Close();
}
I want to test a class that will use this interface to populate a file. It will be calling WriteData a bunch of times and I just want to test the final output. Is there a way to int开发者_如何学Croduce a new private field to the Mock object that will get appended to each time WriteData(Data) is called?
I really just want to see what the file will look like at the end of the day. Is there a better approach to this?
So, do you need some sort of count of the number of times it is called?
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++; });
精彩评论