Кроты стремятся дать заглушки (и не издевается ) для всего, даже для статических или закрытых методов.В руководстве Moles написано, что они не нацелены на насмешливый аспект, как другие насмешливые фреймворки: они предлагают изоляцию, а не насмешки.Если вы хотите проверять звонки на своих родинках, вы должны делать это по-своему.Например:
bool called = false;
MDisposableObject.Constructor = (@this) =>
{
var mole = new MDisposableObject(@this)
{
Dispose = () =>
{
Assert.IsFalse(called);
called=true;
//if you want to call the original implementation:
MolesContext.ExecuteWithoutMoles(() => (@this).Dispose());
//or do something else, even nothing
}
};
};
Только Typemock Isolator (мощный, но дорогой) и JustMock Telerik (новый параллельный, также не бесплатный) включает функции насмешки для всего.
Если у вас есть некоторые интерфейсы, делегаты и виртуальный метод, используйте бесплатную среду для моделирования, такую как Moq или RhinoMocks.
Предупреждение о моем примере: до сих пор я не нашел, как вызвать оригинальный конструктор, я имею в виду что-то вроде
var mole = new SDisposable();
(@this) = mole;
new MDisposable(mole) {...};
На самом деле, из того, что я читал в msdn, это не так.возможно ... я надеюсь, что следующие выпуски позволят это.