Rhino Mocks:如何分辨物体是模拟的还是真实的

本文关键字:真实 模拟 Mocks Rhino | 更新日期: 2023-09-27 18:09:36

给定一个对象o,我怎么能告诉如果它是一个模拟或真实对象?

我认为这样做的唯一方法看起来有点俗气:

public bool IsMockedObject(object o)
{
  try
  {
    o.GetMockRepository();
    return true;
  }
  catch(InvalidOperationException)
  {
    return false;
  }
}

请告诉我有更好的方法!

Rhino Mocks:如何分辨物体是模拟的还是真实的

您可以检查对象是否实现了IMockedObject:

bool isMocked = o is Rhino.Mocks.Interfaces.IMockedObject;

这当然需要引用RhinoMocks程序集,我将尽量避免在您的生产代码中引用它。