Я пытаюсь следовать TDD. Итак, вот моя проблема
У меня есть интерфейс Risk с методом
boolean check(...)
Risk1 и Risk2 - это тестовые внедрения, разработанные в первую очередь, поэтому теперь они полностью покрыты. Я решил, что модуль, проверяющий все риски (CompositeRisk), также может реализовать Risk. CompositeRisk применяет операцию ИЛИ к каждому результату Risk1 и Risk2 (если один риск верен, то все это рискованно). Тем не менее, все тестируется в первую очередь.
Теперь я смотрю на один из рисков и думаю - у этого есть слово "И" и проверяет разные поля. Кажется, я могу разделить его на два объекта и создать еще один CompositeAndRisk, который будет применять И к обоим разделенным рискам. Таким образом, я мог построить DSL для дерева принятия решений по рискам (кажется хорошим, потому что правила рисков могут сильно измениться).
Итак, что мне делать с раздельными тестами риска? Должен ли я переименовать i в CompositeAndRiskTest? я должен удалить его?, я должен написать тест для splitClasses?