2.2 어떤 테스트를 작성할 수 있는지 결정
일부 복잡한 메서드에서는 테스트 코드를 작게는 수십 개 혹은 수백 개 작성할 수도 있습니다. 이때 얼마나 많은 테스트를 작성해야 하는지 생각해 봅시다. 여러분은 코드에서 분기점이나 잠재적으로 영향력이 큰 데이터 변형들도 고려해 볼 수 있습니다. 시작점은 반복문, if 문과 복잡한 조건문들을 보는 것입니다. 그 후 데이터 변형들도 고려해 보세요. 데이터가 null이거나 0이면 어떻게 될까요? 코드에서 데이터 값은 조건문을 평가하는 데 어떤 영향을 미칠까요?
Criteria 인스턴스가 단지 Criterion 객체 한 개를 포함하는 단순한 행복 경로(happy path)를 넘어서, 다음 각 조건은 현재의 테스트 케이스에 영향을 주거나 또 다른 테스트 케이스를 도입하는 고려 사항입니다.
• Criteria 인스턴스가 Criterion 객체를 포함하지 않을 때(27행)
• Criteria 인스턴스가 다수의 Criterion 객체를 포함할 때(27행)
• answers.get()에서 반환된 Answer 객체가 null일 때(29행)
• criterion.getAnswer() 혹은 criterion.getAnswer().getQuestion Text()의 반환값이 null일 때(29행)
• criterion.getWeight()의 반환값이 Weight.DontCare여서 match 변수가 true일 때(30행)