Принцип открытого / закрытого, похоже, заключается в предотвращении регрессий в объекте или методе. Учитывая, что ваш код покрыт тестами, потому что вы практикуете BDD, это кажется избыточным требованием. Вдобавок кажется, что это вносит дополнительную сложность, требуя расширяемости на уровне API, а не на уровне языка.