Можно ли изменить параметр вызова метода издевательства? В частности, я хочу изменить 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 выполнение выполняется после выполнения этой команды. Является ли мой синтаксис укушенным или это ошибка?