Существует много различий между фреймворками, которые не относятся к технологии, на которой построены фреймворки.
Например:
- API - каждый фреймворк имеет разные нотации и значения по умолчанию (например,
строгие значения по умолчанию против смягченных значений по умолчанию)
- Поддержка - собственные структуры обычно предлагают поддержку с лицензиями
- Цена - это не вопрос использования, но требует бюджета
Основным преимуществом Extract & Override является то, что он требует некоторого рефакторинга. Если пренебречь кодом, над которым вы работаете, это дает хороший шанс просмотреть его и реорганизовать в сторону лучшего кода, а не только для тестируемости.
Основным преимуществом использования инфраструктуры Isolation является то, что вам не нужно изменять тестируемый код (если это большая кодовая база, может потребоваться много времени, чтобы просто реорганизовать ее для тестируемости). Кроме того, платформы Isolation не навязывают вам конкретный дизайн, это может быть полезно, если унаследованный код лучше соответствует существующему дизайну. Другая функция, которая полезна в унаследованном коде, - это замена экземпляров, созданных в тестируемом коде, обычно рефакторинг экземпляров требует больше усилий, и это можно сохранить. Последнее, что нужно - это подделка стороннего кода - используя изолирующие фреймворки, вы можете изолировать код, который не принадлежит вам, без использования классов-оболочек.
Отказ от ответственности - я работаю в Typemock