[英]RhinoMock - Recursive mocking
我无法让递归模拟工作。
SomeClass someMOck = MockRepository.GenerateMock<SomeClass>();
//SomeClass is having another class as a property.
someMock.Stub(x => x.Manager.SomeData).Return("Hello");
在运行时它会抛出一个错误。
System.InvalidOperationException:上一个方法'SomeClass.get_Manager();' 需要返回值或抛出异常。
我正在使用3.6 build 21。
任何想法?
这是因为您没有为someeClass.Manager
指定的值。
您将需要模拟Manager
类并将其设置为someeClass.Manager
的返回值。
SomeClass someMock= MockRepository.GenerateMock<SomeClass>();
Manager managerMock= MockRepository.GenerateMock<Manager>();
managerMock.Stub(x => x.SomeData).Return("Hello");
someMock.Stub(x => x.Manager).Return(managerMock);
但另一件事与代码的设计有关。 Demeter法则规定您不应在代码中使用嵌套的property.property。 您应该只传递真正必要的信息,并确保使用传入的所有内容。 那么是否真的有必要访问一个完整的Manager
对象才能获得SomeData
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.