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