Назначение метода класса заглушки в Moles при использовании частичных заглушек - PullRequest
0 голосов
/ 09 сентября 2011

Я видел этот вопрос относительно частичных заглушек, но он не совсем говорит мне, что мне нужно знать.

Я понимаю, что если я использую заглушку Moles для класса (скажем, для DataService, я использую SDataService), я могу установить для свойства CallBase значение true, чтобы если для конкретного метода нет делегата, будет вызван метод базовой реализации. Отлично, но как в этом случае назначить делегата определенному методу?

Если нет способа сделать это, скажем, у меня есть интерфейс IDataService, который я заглушаю, используя SIDataService. Я могу легко назначить делегата для метода здесь. Но как мне сказать, чтобы он вызывал соответствующий метод на DataService (реализация IDataService), если для данного метода нет делегата?

Спасибо!

Edit:

Теперь я вижу, что метод должен быть виртуальным для переопределения в первом сценарии выше. Я не думаю, что это имеет большой смысл, но это то, что есть.

Итак, сосредоточившись на втором сценарии, я должен был бы создать Behavior? (И почему нет такого уже для окурков, как для родинок?) Или есть более простой способ?

1 Ответ

0 голосов
/ 16 сентября 2011

Делегаты (обходные пути) устанавливаются на типы заглушек так же, как и типы родинок.Например, SIDataService.GetMemberProfile () настроен на возврат фиктивного объекта, например:

var memberMock = new Member() { Firstname="Joe", LastName="Schmoe" };
var stub = new SIDataService();
stub.GetMemberProfileMember = i => memberMock;
...