Обычно я бы выбрал второй вариант, предполагая, что у вас есть возможность сделать изменения достаточно легко.Учитывая, что, если вы не можете проверить, что делает защищенный / приватный метод через его открытый интерфейс, он, вероятно, в любом случае не соответствует принципу Единой ответственности, и код, вероятно, мог бы быть разбит на два класса и вместо этого использовать композицию.