Как проверить параметры, которые были использованы в макете NSubstitute - PullRequest
0 голосов
/ 18 мая 2019

Я знаю, как утверждать, что вызов метода в фиктивном интерфейсе был сделан с конкретными аргументами или с любыми аргументами.

Однако я хочу сохранить параметр, который использовался для вызова функции, и выполнить еще одно утверждение для нее, и я нигде не смог найти, как я могу это сделать.

Как сохранить значение параметра, использованного при вызове фиктивного метода?

1 Ответ

3 голосов
/ 19 мая 2019

Вы можете захватить аргумент через Arg.Do, как описано в Выполнение действий с аргументами :

var firstArgsBeingMultiplied = new List<int>(); 
calculator.Multiply(Arg.Do<int>(x => firstArgsBeingMultiplied.Add(x)), 10);

calculator.Multiply(2, 10);
calculator.Multiply(5, 10);
calculator.Multiply(7, 4567); //Will not match our Arg.Do as second arg is not 10

Assert.AreEqual(firstArgsBeingMultiplied, new[] { 2, 5 });

К аргументам также можно получить доступ и сохранить из .Returns или When..Do обратный вызов.

Надеюсь, это поможет.

...