Да. Использование обеих стратегий обеспечит надежность тестируемого кода, поскольку вы тестируете контракт кода между его зависимостями (mockist) и моделируете функциональность производственной среды (state). Смешивая два подхода, вы гарантируете сбалансированный подход к тестированию.
Тем не менее, обратите внимание, что для тестирования на основе состояния обычно требуются дополнительные затраты, поскольку необходимо настроить и настроить среду для всех компонентов, которые относятся к тестируемому объекту. Это обычно приводит к хрупким испытаниям. Достаточно иметь небольшую часть тестов на основе состояния для тестов mockist.
Использование стратегии mockist продвигает Принцип Единой Ответственности, где каждый класс имеет конечный набор обязанностей и зависит от других классов в своих обязанностях. По моему опыту, если обязанности между объектами плохо определены, вы попадете в тестирование на основе состояния, что предполагает проблему инкапсуляции или абстракции.