여기에있는 것은 단위 테스트가 아닙니다. 단위 테스트는 코드의 단일 단위를 테스트합니다 (크기는 클 수 있음). 파일 또는 네트워크 연결과 같은 외부 환경 요인에 의존하지 않습니다.
여기 파일에 따라 다르므로 통합 테스트가 필요합니다. 코드가 코드 제어 밖에있는 무언가 (이 경우 파일 시스템)와 안전하게 통합되는지 여부를 테스트하고 있습니다.
실제로 이것이 통합 테스트 인 경우 실제로 테스트하려는 것을 테스트하도록 테스트를 변경해야합니다.
CSV 구문 분석을 테스트하는 등의 단위 테스트로 계속 생각 중이라면 CSV 파일의 실제 읽기를 조롱하거나 스눕/위조 할 수 있도록 코드를 리팩터링합니다. 내용. 이렇게하면 외부 파일에 의존하지 않고 CSV 파서에 테스트 데이터를보다 쉽게 제공 할 수 있습니다.
예를 들어
, 당신은 생각해야한다 :
- 안티 바이러스 패키지는 당신에게 TortoiseSVN이 같은 파일
- 전형적인 프로그래머 도구에 즉시 액세스 권한을 부여하지 않을 수 있습니다, 때로는에 개최하는 것이 탐색기로 쉘 오버레이를 통합 너무 오랫동안 파일에 저장하고 항상 프로그램에 파일에 대한 액세스 권한을 부여하지는 않습니다 (파일을 삭제하고 새로운 파일로 덮어 쓰려고합니까? 물론 삭제를 먼저 처리하도록하겠습니다.하지만 프로그램이 있습니다. 파일을 잡고 있기 때문에 시간이 좀 걸릴 수 있습니다 ...)
- 파일이 실제로 (그 이유는 무엇입니까?)
- 당신 수도없는 당신은 이전 디버깅 세션에서 남은 (잘못된 파일 내용이있을 수 있습니다 경로
- 에 대한 읽기 액세스 할 수 있습니다?)
이되지 않을 수도 있습니다
일단 파일 시스템, 네트워크 연결 등과 같은 외부 시스템을 사용하기 시작하면 잘못 될 수있는 많은 것들이 있습니다. 기본적으로 취할 수있는 테스트입니다.
내 조언 : 테스트하려는 내용 (파일 시스템? CSV 구문 분석기)을 파악하고 그 목표와 충돌하는 종속성을 제거하십시오. Gallio/MbUnit에서
이 테스트를 삭제 그들이 파일이 없거나 얻을 경우 – Grzenio
을 당신이 여기에있는 것은 아니다 "생략"자동으로 할 수있는 경우를 가지고있는 점은 무엇입니까? 단위 테스트는 통합 테스트입니다. 두 테스트의 차이점은 테스트가 성공하는지 여부는 테스트중인 실제 코드에 의존하지 않습니다. 그러나 외부 환경 요인에 따라 달라질 수 있습니다. csv 파일을 읽지 못하게 할 방법이 없습니까? 아니면 실제로 파일 시스템을 테스트하고 있습니까? –