Можно ли изменить параметр вызова смоделированного метода?В частности, я хочу изменить buffer
в следующем примере на предварительно заполненный байтовый массив.
Пример:
int MockedClass.Read(byte[] buffer, int offset, int count)
Объяснение:
Вызов Read
загружает count
байт, считывающих из offset
в предоставленный байтовый массив buffer
.
Теперь я хотел бы заполнить буфер после вызова Read
в коде моего приложения.Возможно ли это?
Если да, как мне поступить с последовательными звонками на Read
?Я хотел бы, чтобы последовательные вызовы каждый раз возвращали новый буфер, если это возможно.
РЕДАКТИРОВАТЬ:
, используя команду 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);
вызывает у меня странную проблему при выполнении модульного теста: после выполнения вызова Read
и выполнения кода делегата (buffer[0] = 0xAA
) отладчик показывает, что buffer
на самом деле null
и модульный тествыполнение прекращается после выполнения этой команды.Мой синтаксис поврежден или это ошибка?