我们正在使用Rhino Mocks执行一些单元测试,需要模拟两个接口。在对象上只实现了一个接口,而另一个接口是使用面向方面的方法动态实现的。是否有一种简单的方法可以动态组合这两个接口,以便可以创建模拟并为两个接口创建方法?
答案 0 :(得分:15)
使用Rhino Mocks
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
中的信息答案 1 :(得分:12)
它不是动态的,但肯定很简单:在测试程序集中创建一个接口,除了实现其他两个接口之外什么都不做:
internal interface ICombined : IFirstInterface, ISecondInterface {}
然后模拟ICombined
。
答案 2 :(得分:3)
使用Rhino Mocks的多个接口的模拟可以像这样生成:
var mocker = new MockRepository();
var mock = mocker.CreateMultiMock<IPrimaryInterface>(typeof(IFoo), typeof(IBar));
mocker.ReplayAll();