• value 변수와 criterion.getWeight()가 매칭되어 match 변수가 true일 때(30행)
• 두 조건문이 모두 false여서 결과적으로 match 변수가 false가 될 때(30행)
• match 변수가 false이고 criterion.getWeight()가 Weight.MustMatch여서 kill 변수가 true일 때(34행)
• match 변수가 true이기 때문에 kill 변수가 변하지 않을 때(34행)
• criterion.getWeight()가 Weight.MustMatch가 아니기 때문에 kill 변수가 변하지 않을 때(34행)
• match 변수가 true이기 때문에 score 변수가 업데이트되었을 때(37행)
• match 변수가 false이기 때문에 score 변수가 업데이트되지 않았을 때(37행)
• kill 변수가 true이기 때문에 matches 메서드가 false를 반환할 때(42행)
• kill 변수가 false이고 anyMatches 변수가 true이기 때문에 matches 메서드가 true를 반환할 때(42행과 44행)
• kill 변수가 false이고 anyMatches 변수가 false이기 때문에 matches 메서드가 false를 반환할 때(42행과 44행)
이 조건 목록(이외에도 좋은 예를 더 만들 수 있음) 15개는 코드를 대략적으로 읽어 보고 만든 것입니다. 지금까지 우리는 코드가 분기하거나 데이터 변형이 서로 다른 결과를 만들어 내는 것을 잡아냈습니다. 테스트를 작성하고 나면 코드가 실제로 어떻게 동작하는지 더 잘 이해할 수 있습니다.