给定一个对象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程序集,我会尽量避免使用您的生产代码.