Получение аргументов вызываемого макета метода Typemock - PullRequest
1 голос
/ 26 июня 2009

Я большой пользователь RhinoMocks, разрабатывающего с точки зрения TDD и AAA с NUnit и ReSharper. Я меняю работу, и команда, в которую я переезжаю, использует TypeMock, поэтому я хочу взяться за дело ... и я столкнулся с проблемой. Как я могу получить аргументы для вызываемого метода на фиктивном объекте. При использовании RhinoMocks я использую:

mockObject.GetArgumentsForCallsMadeOn(x => x.MethodIWantToGetParametersFrom(null))

Возвращает список объектов типа массив. Большой! Я иду и получаю то, что хочу, и обрабатываю, как хочу. Теперь, используя синтаксис AAA TypeMock, я не могу найти способ сделать это ... Может ли кто-нибудь пролить свет на это, пожалуйста? Должен ли я делать это по-другому?

Спасибо за чтение, и я с нетерпением жду ваших ответов!

Адам

1 Ответ

1 голос
/ 27 июня 2009

вы можете использовать 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.
...