Ответ, вероятно, зависит от того, как вы используете свои спецификации, и много ли кодов ломается в процессе создания.
Технические характеристики можно использовать практически для всего, что только можно придумать. На базовом уровне спецификации - это просто управляемые условные операторы, инкапсулированные в объекты. Везде, где код использует условную логику, вероятно, можно преобразовать эту логику в спецификации, если разработчик посчитал, что есть какое-то оправдание.
Нет ничего плохого в использовании спецификаций в реальном коде, при условии, что он делает код более удобным, поддерживаемым или читаемым. Также нет ничего плохого в создании спецификаций, которые используются только в тестах. Спецификации являются простыми объектами, и привязка кода к спецификациям тем или иным образом, по-видимому, не оказывает существенного негативного влияния на техническое обслуживание или возможность повторного использования из-за относительной простоты большинства спецификаций.
Если спецификация для агрегата
Корневой продукт используется для
проверка, а не для создания,
имеет ли смысл называть это из
внутри завода?
Да, но, вероятно, только если у вас возникли проблемы или неуверенность в продукте фабрики.
Или достаточно ли модульного теста?
Да, вызов спецификации из модульного теста может быть достаточно хорошим, чтобы доказать действительность фабричного продукта (по крайней мере, в отношении того, что охватывает спецификация). Однако я не часто использую спецификации в своих модульных тестах, только когда мне трудно с чем-то или это часть логики, которую я тестирую.