오늘 나는 " JUnit basics"비디오를 보고 있었고 저자는 프로그램에서 주어진 메소드를 테스트 할 때 프로세스에서 다른 메소드를 사용해서는 안된다고 말했다.
보다 구체적으로 말하면 인수의 이름과 성을 사용하는 레코드 작성 방법을 테스트하고 주어진 테이블에서 레코드를 작성하는 데 사용했습니다. 그러나 그는이 방법을 테스트하는 과정에서 다른 DAO 방법을 사용하여 데이터베이스를 쿼리하여 최종 결과를 확인 해서는 안된다고 주장했습니다 (실제로 올바른 데이터로 레코드가 작성되었는지 확인). 그는 데이터베이스를 쿼리하고 결과를 확인하기 위해 추가 JDBC 코드를 작성해야한다고 주장했다 .
나는 그의 주장의 정신을 이해한다고 생각합니다. 한 방법의 테스트 사례가 다른 방법 (이 경우 DAO 방법)의 정확성에 의존하지 않기를 원하며 이것은 자신의 유효성 검사를 (다시) 작성하여 달성됩니다 / supporting 코드 (보다 구체적이고 집중되어야하므로 더 간단한 코드).
그럼에도 불구하고 내 머리 속의 목소리는 코드 복제, 불필요한 추가 노력 등과 같은 논쟁으로 항의하기 시작했습니다. 우리가 전체 테스트 배터리를 실행하고 모든 공개 방법을 철저히 테스트한다면 (이 경우 DAO 방법 포함) 다른 방법을 테스트하는 동안 해당 방법 중 일부를 사용하는 것이 좋지 않습니까? 그중 하나가 예상대로 작동하지 않으면 자체 테스트 사례가 실패하고 문제를 해결하고 테스트 배터리를 다시 실행할 수 있습니다. 중복 코드가 다소 단순하더라도 코드 중복이 필요하지 않거나 노력이 낭비되지 않습니다.
필자가 작성한 최근의 Excel - VBA 응용 프로그램 ( VBA 용 Rubberduck 덕분에 단위 테스트를 거쳤습니다)으로 인해이 권장 사항을 적용하면 추가적인 추가 작업이 많이 발생하고 아무런 이익이 없음을 알 수 있습니다.
이에 대한 통찰력을 공유 할 수 있습니까?