При создании прокладок для членов типов в BCL (или любой другой библиотеки, если на то пошло). Мы часто сталкиваемся с ситуацией, когда мы хотим вызвать оригинальный метод, который мы переопределили (будь то внутри делегата прокладки или снаружи). Например .:Вызов исходного метода из метода прокладки
System.Fakes.ShimDateTime.NowGet =() => DateTime.Now.AddDays(-1);
В приведенном выше коде, все, что мы хотим сделать, когда DateTime.Now называется, чтобы вернуться в день меньше, чем фактическая дата. Возможно, это похоже на надуманный пример, поэтому другие (более) реалистичные сценарии:
- Уметь фиксировать и проверять значения аргументов, передаваемые конкретному методу.
- Чтобы иметь возможность подсчитывать количество раз , конкретный метод/свойство запрашивается тестируемым кодом.
Я столкнулся с последним сценарием в реальном приложении и не смог найти ответ на Fakes on SO. Однако после того, как вы выкапываете документацию Fakes, я нашел ответ, разместив его вместе с вопросом для сообщества.