18

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

4

3 回答 3

17

使用 Rhino 模拟

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

找到并使用了来自http://www.richard-banks.org/2010/08/mocking-comparison-part-11-multiple.html的信息

于 2012-12-14T21:48:37.593 回答
14

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

internal interface ICombined : IFirstInterface, ISecondInterface {}

然后模拟ICombined

于 2009-01-29T14:50:29.007 回答
3

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

var mocker = new MockRepository();
var mock = mocker.CreateMultiMock<IPrimaryInterface>(typeof(IFoo), typeof(IBar));
mocker.ReplayAll();
于 2010-06-04T12:58:08.273 回答