C# 创建模拟时如何组合两个接口?

C# 创建模拟时如何组合两个接口?,c#,.net,rhino-mocks,C#,.net,Rhino Mocks,我们正在使用Rhino模拟来执行一些单元测试,需要模拟两个接口。只有一个接口在对象上实现,另一个接口使用面向方面的方法动态实现。有没有一种简单的方法可以动态地组合这两个接口,以便创建一个模拟,并为这两个接口创建方法存根?这不是动态的,但肯定很简单:在测试程序集中创建一个接口,它除了实现其他两个接口之外什么都不做: internal interface ICombined : IFirstInterface, ISecondInterface {} 然后mocki组合可以生成一个使用Rhino

我们正在使用Rhino模拟来执行一些单元测试,需要模拟两个接口。只有一个接口在对象上实现,另一个接口使用面向方面的方法动态实现。有没有一种简单的方法可以动态地组合这两个接口,以便创建一个模拟,并为这两个接口创建方法存根?

这不是动态的,但肯定很简单:在测试程序集中创建一个接口,它除了实现其他两个接口之外什么都不做:

internal interface ICombined : IFirstInterface, ISecondInterface {}

然后mock
i组合

可以生成一个使用Rhino mock的具有多个接口的mock,如下所示:

var mocker = new MockRepository();
var mock = mocker.CreateMultiMock<IPrimaryInterface>(typeof(IFoo), typeof(IBar));
mocker.ReplayAll();
var mocker=new MockRepository();
var mock=mocker.CreateMultiMock(typeof(IFoo),typeof(IBar));
mocker.ReplayAll();
使用Rhino模拟

var mock = MockRepository.GenerateMock<IFirst, ISecond>();
mock.Stub(m => m.FirstProperty).PropertyBehavior();
((ISecond)mock).Stub(k=> k.SecondProperty).PropertyBehavior();
var mock=MockRepository.GenerateMock();
mock.Stub(m=>m.FirstProperty).PropertyBehavior();
((ISecond)mock).Stub(k=>k.SecondProperty).PropertyBehavior();

找到并使用了来自

的信息如果其他人偶然发现了这一点,请注意它是Generate Mock,而不是
GenerateSub
。存根版本没有多个类型参数。请注意,
ReplayAll
是一个