Вы пытаетесь вызвать метод, используя одну строку, а не массив.Имейте в виду, что это компилятор C #, который обрабатывает часть params
, преобразуя код вызова, который просто указывает отдельные значения, в вызов, передаваемый в массиве.Что касается самого метода, он просто получает массив - и это то, над чем вы издеваетесь.
Компилятор на самом деле превращает ваш код в:
mock.Setup(m => m.GetFirstTicketInQueueIfMatches
(new string[] { It.IsAny<string>() }))
это не то, что вам нужно.
Вы должны использовать:
mock.Setup(m => m.GetFirstTicketInQueueIfMatches(It.IsAny<string[]>()))
Если вам нужно убедиться, что он получает только одно значение, вам нужно сделатьто же самое, что и для параметра без параметров.
По сути, params
имеет значение только для компилятора C #, но не для moq
.