Получение аргументов вызываемого метода Typemock
-
20-08-2019 - |
Вопрос
Я активно использую RhinoMocks, разрабатывая его с точки зрения TDD и AAA с помощью NUnit и ReSharper.Я меняю работу, и команда, в которую я перехожу, использует TypeMock, поэтому я хочу сразу взяться за дело...и я столкнулся с проблемой.Как я могу получить аргументы вызываемого метода для фиктивного объекта.При использовании RhinoMocks я использую:
mockObject.GetArgumentsForCallsMadeOn(x => x.MethodIWantToGetParametersFrom(null))
Возвращает IList массива объектов типа.Большой!Я иду и получаю то, что хочу, и обрабатываю это так, как хочу.Теперь, используя синтаксис AAA TypeMock, я не могу найти способ сделать это...Может ли кто-нибудь пролить свет на это, пожалуйста?Должен ли я делать это по-другому?
Спасибо за прочтение и жду ваших ответов!
Адам
Решение
вы можете использовать DoInstead():
Isolate.WhenCalled(()=>x.MethodIWantToGetParametersFrom).DoInstead(context => Console.WriteLine(context.Parameters[0].ToString())
Вы получаете объект Context, содержащий значения параметров.
вы также можете реализовать метод с тем же именем в своем собственном классе и поменять вызовы с поддельного объекта на этот метод:
class MyOwnClass
{
void MethodIWantTOGetParametersFrom(string s){
Console.WriteLine(s);
} //this is NOT the real method
}
//in test:
MyOwnClass own = new MyOwnClass();
Isolate.Swap.CallsOn(realClassInstance).WithCallsTo(own); //only methods that are implemented in the OwnCalss will be redirected. others will be called on the original instance.