Замена реализаций методов в сторонних средах - чрезвычайно рискованная вещь, потому что нет способа быть уверенным во внутренних деталях реализации и, следовательно, в зависимостях, которые вы можете неосознанно нарушать. Он также очень хрупкий - даже если он работает правильно сегодня, он может что-то сломать в будущем выпуске фреймворка.
Никакое количество модульных тестов не может гарантировать действительность изменений, которые вы вносите таким образом. Если бы вы делали подобные вещи исключительно для экспериментов, я уверен, что это может быть забавно и полезно в учебных целях, но тогда вы не будете беспокоиться о тестировании черного ящика.
Подумайте, можете ли вы выполнить то, что вам нужно, добавив методы, которые параллельны существующим, вместо замены реализаций метода в фреймворке.