А вы не пробовали Codeception? Там возможность дописывать методы в свои модули предусмотрена и достаточно прозрачно описана в документации. Используется тот же Mink.
You may run into problems when using custom repositories because Composer does not load the repositories of your requirements, so you have to redefine those repositories in all your composer.json files.
Но это глупость: отслеживает все запуски этой функции и запоминает при каких аргументах какое возвращаемое значение. По этим данным модуль автоматически строит unit-тесты (PHPUnit). Как бы фиксирует корректную работу приложения в данный момент.
Работу 90% методов нельзя проверить по сравнению input/output
Метод вообще ничего может не возвращать, но зато может вызывать из себя кучу других методов. Никак корректную их работу вы не отследите. Только писать вручную.
Скажу где не надо использовать Doctrine 1.2 или Propel — в long-running scripts.
Доктрина жрет память на ровном месте и с этми никак не справитесь, рано или поздно достигните лимита по памяти.
В остальных случаях выбор ОРМ оправдан.