Что ж, один простой, если не самый простой, способ получить высокий уровень покрытия кода - это написать код сначала в тестовом режиме, следуя тест-управляемой разработке (TDD). Теперь, когда код существует, без модульных тестов, его можно считать устаревшим кодом.
Вы могли бы написать сквозной тест, внешний для вашего приложения, это не будут модульные тесты, но они могут быть написаны, не прибегая к каким-либо насмешкам. Или вы можете написать модульные тесты, охватывающие несколько классов, и только высмеивать классы, которые мешают вашим модульным тестам.