Это немного странно. Я пытаюсь заглушить метод, у которого есть параметры, мне все равно, какие параметры, поэтому я игнорирую аргументы. Это выглядит так:
List<Foo> ignored;
A.CallTo(() => fake.Method(out ignored))
.Returns(something);
Это работает без проблем, когда метод-заглушка вызывается так:
List<Foo> target;
var result = service.Method(out target);
Однако, это не работает, когда target
предварительно инициализирован. Например:
List<Foo> target = new List<Foo>();
var result = service.Method(out target);
Когда я проверяю Tag
на фальшивке, я вижу, что параметры out записываются как <NULL>
, поэтому я подозреваю, что они не совпадают, когда цель out уже установлена на что-то. Я попытался установить ignored
в моем тесте на new List<Foo>()
, а также попытался A<List<Foo>>.Ignored
, но ни один из них не повлиял на результат.
Так что мой вопрос: кто-нибудь знает, как заглушить метод без параметров, если у цели параметра out уже есть значение?