如何根据rhino mocks中的基类类型匹配参数?

时间:2017-01-19 19:51:58

标签: c# unit-testing rhino-mocks

我正在尝试使用其中一个参数的类型约束来存根方法。通常我已经知道类型并写:

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

相反,我想要捕获对SomeMethod的所有调用,其中传入的第一个arg派生自基类,比如B。这可能吗?有人可以帮忙举个例子吗?

我想指定的伪代码:

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

并且有SomeMethod(a);之类的调用,其中a的类型为A,而A来自B

2 个答案:

答案 0 :(得分:1)

Rhino Mocks支持将其作为constraints的一部分,您的代码应该是这样的:

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

答案 1 :(得分:0)

举个例子。

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

...应适用于从B派生的任何类。