Тестирование метода, вызываемого много раз в moq - PullRequest
4 голосов
/ 28 июля 2010

У меня есть такой интерфейс:

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

Я хочу протестировать класс, который будет использовать этот интерфейс для заполнения файла. Он будет вызывать WriteData несколько раз, и я просто хочу проверить окончательный результат. Есть ли способ ввести новое закрытое поле в объект Mock, к которому будет добавляться каждый раз, когда вызывается WriteData (Data)?

Я просто хочу посмотреть, как будет выглядеть файл в конце дня. Есть ли лучший подход к этому?

1 Ответ

8 голосов
/ 28 июля 2010

Итак, вам нужен какой-то счетчик того, сколько раз он вызывается?

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++; });
...