То, с чем вы сталкиваетесь, в основном является ограничением примитивного waqy, который Mock работает для насмешек.
Существуют некоторые коммерческие структуры, которые работают вокруг этого - JustMock от Telerik является наиболее разумной ценой.Они работают, присоединяя себя в качестве профилировщиков и заменяя исполняемый байт-код - таким образом, они действительно СМЕЩАЮТ методы.
MOCK - и все остальные превосходят ручную работу - работают, в основном, с помощью подкласса / реализации, и вы не можете создать подкласс частного или невиртуальный метод.Это делает их бесполезными для насмешки над любым правильно определенным запечатанным объектом, который не должен быть подклассом - вы должны запрограммировать свои открытые объекты, которые затем допускают всевозможные злоупотребления.
Они также не могут высмеивать статические методы, которые немногиеодни могут.Это очень полезно, потому что это позволяет вам, например, смоделировать вызов DateTime.UtcNow, чтобы он всегда возвращал СПЕЦИАЛЬНОЕ время, которое может потребоваться в модульном тесте.
Так что, извините, нет способасделай это с Мок.