Я пытаюсь проверить следующий метод:Использование Moq, как мне высмеять метод, который изменяет поток, который он принимает в качестве параметра?
public void SaveDashboardToPersistentDashboard(
Dashboard dashboard, PersistentDashboard persistentDashboard)
{
using (MemoryStream stream = new MemoryStream())
{
dashboard.SaveToXml(stream);
persistentDashboard.Definition = stream.ToArray();
persistentDashboard.Name = dashboard.Title.Text;
_unitOfWork.CommitChanges();
}
}
Метод принимает DevExpress панель, вызывает SaveToXml
(переходящий в MemoryStream
), а затем записывает массив потока в Definition
свойства а PersistentDashboard
Poco в.
У меня нет контроля над классом Dashboard, но хотелось бы высмеять метод SaveToXml
, чтобы исключить поведение метода панели мониторинга из теста. Это потребует взятия внутреннего потока и записи в него массива известных байтов.
Я новичок в Moq и не могу решить, как изменить содержимое потока, переданного в SaveToXml, - по крайней мере, не пропуская поток в метод SaveDashboardToPersistentDashboard
. Поток связан с поведением метода, поэтому я не особо заинтересован в передаче его в качестве параметра.
Есть ли способ достичь того, что я пытаюсь сделать?