2017-01-19 4 views
0

Я пытаюсь заглушить метод, используя ограничение типа для одного из аргументов. Обычно я уже знаю, тип и написать:Как сопоставить аргумент в зависимости от его типа базового класса в ностальгах rhino?

o.Stub(x => x.SomeMethod(Arg<bool>.Is.Anything)).Return(...); 

Вместо этого, я хотел бы, чтобы поймать все звонки SomeMethod, где первый аргумент передается в унаследованный от базового класса, скажем B. Это возможно? Может ли кто-нибудь помочь с примером?

Псевдо-код для того, что я хотел бы уточнить:

o.Stub(x => x.SomeMethod(Arg.Type.Equals(typeof(B))).Return(...); 

и имеют это крылатое вызовов, как SomeMethod(a); где a имеет тип A и A происходит от B.

ответ

0

Учитывая ваш пример.

o.Stub(x => x.SomeMethod(Arg<B>.Is.Anything)).Return(...); 

... должны работать для любых классов, производных от B.

1

Rhino Mocks поддерживает, что в рамках своей constraints, код должен быть что-то вроде:

o.Stub(x => x.SomeMethod(Arg<B>.Is.TypeOf)).Return(...); 
Смежные вопросы