За идею с классами-сценариями отдельное спасибо! Никогда не смотрел на такую возможность реализации Моков. Такой подход на первый взгляд должен существенно упростить сами тесты и их обслуживание. Пойду попробую на практике :)
Это становится похоже на контрактные тесты, но самое интересное тут в том, как реализовать проверки корректности поведения моков (т.е., что их поведение соответствует поведению мокируемых объектов). Про это хочется почитать.
Мок — это не костыль, мок — это спецификация