У меня есть абстрактный класс, который имеет виртуальный метод. Метод является виртуальным в том случае, если более поздняя реализация должна переопределить эту функциональность.
Однако Moq проксирует все виртуальные методы, поэтому я не могу проверить реальный написанный код и вместо этого использует настройку Mock для этого метода (который в настоящее время возвращает значение по умолчанию).
Пример резюме:
public abstract SomeAbstract
{
public abstract Format(IFormatProvider provider, string format)
{
// does some stuff i need to test
}
}
Мой тест NUnit:
[Test]
public void Should_Set_Format_State()
{
Mock<SomeAbstract> mock = new Mock<SomeAbstract>();
mock.Object.Format(CultureInfo.CurrentCulture, "format string");
// do tests to make sure Format correctly changed the object's state
}
Как мне настроить объект Mock, чтобы позволить моему виртуальному Format
методу работать без необходимости удалять virtual
из метода ?! Возможно, я злоупотребляю концепцией издевательства в этом случае.