korchasa ну да, это справедливо для определенного рода ситуаций. Мне чаще встречались прецеденты:
Интерфейс говорит что метод fetch должен возвращать IResultSet. Сначала это был ObjectResultSet implements IResultSet. Потом реализация поменялась и стал возвращаться TupleResultSet implements IResultSet (добавили Bulk Load). Интерфейс абсолютно неопорочен изменениями. Но вот беда, в тесте на метод fetch соответствующего датамаппера был навешан частичный мок, возвращающий мок, подтип, или любой другой дубль от ObjectResultSet. Тест, например контроллера зеленый, хотя должен валиться.
Эта ситуация, кстати, в вики agiledev упомянута в статье про моки, но примеров по этому поводу там нет. Тут никак не отследишь и не угадаешь. Выход я вижу только один - использовать моки как можно реже.
ЗЫ. точнее там сказано, что "мок возвращающий мок". Но по сути, это относится к любым дублям на любые методы, инстанцирующие объекты.