Могу ли я настроить макет объекта, чтобы всегда возвращать объект, заданный в качестве параметра? У меня есть методМогу ли я настроить макет, чтобы всегда возвращать объект, указанный в одном из аргументов?
public MyObject DoSomething(MyObject obj)
, и я хочу, чтобы иметь макет, который всегда возвращает OBJ для каждого вызова DoSomething, вроде этого:
mock.Stub(x=>x.DoSomething(Arg<MyObject>.Is.Anything).Return(Arg<MyObject>)
хотя я не уверен, что ставить в обратном биту ...
EDIT: Я попытался это:
MyObject o=null;
mock.Stub(x=>x.DoSomething(Arg<MyObject>.Is.Anything).WhenCalled (y=>
{
o = y.Arguments[0] as MyObject;
}).Return (o);
, который, казалось, что это может быть обещаю, но не повезло. Проводка его в случае, если она пробежки кого-то память ...
фантастика! спасибо, я знал, что это возможно. –
Что такое .TentativeReturn() do? – Grzenio
Без проблем, Сэм. Было здорово разобраться. @Grzenio: TentativeReturn просто обозначает возвращаемое значение как переопределяемое. Вышеупомянутый код возвращает null, если вы его удалите. (WhenCalled все равно будет выполняться, но новое возвращаемое значение не будет выполнено) –