Можно ли изменить параметр вызова метода издевательства? В частности, я хочу изменить buffer в следующем примере на предварительно заполненный массив байтов.
Пример: int MockedClass.Read(byte[] buffer, int offset, int count)
Объяснение:
Вызов Read загружает count байты с offset в массив байтов buffer.
Теперь я хотел бы иметь буфер, заполненный после вызова Read в моем коде приложения. Возможно ли это?
Если да, как бы я пошел о последовательных вызовах Read? Я бы хотел, чтобы последовательные вызовы возвращали разные буферы каждый раз, когда это было возможно.
EDIT:
с помощью команды Setup:
MockedClass.Setup(x => x.Read(It.IsAny<byte[]>(), It.IsAny<int>(), It.IsAny<int>()).Callback( (byte[] buffer, int offset, int count) => buffer[0] = 0xAA);
дает мне странную проблему при выполнении unit test: после выполнения вызова Read и выполнения кода делегата (buffer[0] = 0xAA) отладчик показывает, что buffer на самом деле null, а unit test выполнение выполняется после выполнения этой команды. Является ли мой синтаксис укушенным или это ошибка?