给定一个对象o,我如何判断它是模拟对象还是真实对象?
我能看到这样做的唯一方法看起来有点hacky:
- public bool IsMockedObject(object o)
- {
- try
- {
- o.GetMockRepository();
- return true;
- }
- catch(InvalidOperationException)
- {
- return false;
- }
- }
请告诉我有更好的方法!
解决方法
您可以检查对象是否实现了IMockedObject:
- bool isMocked = o is Rhino.Mocks.Interfaces.IMockedObject;
这当然需要引用RhinoMocks程序集,我会尽量避免使用您的生产代码.