클래스의 두 가지 메소드에 대한 테스트가 있다고 가정하십시오. 첫 번째 방법은 다른 계층에서 데이터를 수집하여 런타임 (예 : SQL 테이블)과 독립적으로 일종의 스토리지에 저장하므로이 테스트에서 처리하는 모든 데이터는 테스트에 하드 코딩됩니다. 두 번째 방법은 첫 번째 방법이 남은 위치에서 데이터를 가져 와서 어떤 방식 으로든 변환 (계산, 특정 부분 이동 등)을 담당합니다.
이제이 두 번째 방법은 첫 번째 방법과 같이 하드 코딩 된 입력을 가질 수 있거나 두 테스트가 순차적으로 실행되고 첫 번째 테스트에서 실제로 저장된 데이터를 가져 와서 첫 번째 테스트가 중단 된 위치에서 선택할 수 있다고 가정 할 수 있습니다.
두 번째 옵션을 사용하면 두 가지 방법이 잘 작동한다는 사실을 잘 알고 있지만 첫 번째 테스트가 실패하면 모든 테스트가 실패하고 버그를 더 빨리 격리하는 데 도움이되는 테스트 이점을 제거합니다.
첫 번째 옵션을 사용하면 각 방법이 독립적으로 격리되고 테스트되지만 실제로 제대로 작동 할 수 있다는 것을 절대 알 수 없습니다.
여기서 더 좋은 옵션은 무엇입니까? 하드 코딩을 사용하여 분리 된 각 방법에 대해 단일 테스트를 수행 한 다음 두 방법을 모두 포함하는 더 큰 테스트와 같은 대안이 있습니까?