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