일부 환경 조건 (예 : 특정 위치에 파일이 있는지 여부)에 따라 소프트웨어가 다르게 작동해야하는 경우가 있습니다.파일 존재 여부에 따라 다른 동작을하는 단위 테스트
내 경우에는 라이브러리를 개발 중이며 classpath의 구성 파일에 따라 구성됩니다 (구성 파일이없는 경우 기본 동작으로 되돌아갑니다).
이 수업을 어떻게 단위 테스트해야합니까?
파일이 클래스 경로에 존재하지 않는-
콘텐츠 B를 사용하여 파일을 클래스 패스에 존재 : 나는 다음과 같은 경우에는 클래스를 평가하기위한 테스트를 작성해야
하지만 환경을 구성하는 방법을 모르겠다. 그리고 테스트를 하나씩 실행하십시오.
필자는 자바를 사용하고 있으며 테스트 클래스 경로에 JUnit과 TestNG를 둘 다 가지고 있습니다.
편집 : 문제 중 하나는 설정 파일이 클래스 경로에있는, 그래서 있다는 것입니다 일반 클래스 로더 발견로드는, 그것은 한 같은 클래스 로더를 사용하면서 동일한 콘텐츠를 반환하는 경우. 그리고 테스트를 위해 사용자 정의 ClassLoader를 사용하는 것이 매우 복잡하므로 테스트를 검증하는 테스트가 필요하다고 생각합니다!
우리의 [SO 질문 체크리스트]를 검토하십시오 (http://meta.stackoverflow.com/questions/260648/stack- overflow-question-checklist)를 사용하면 좋은 질문을하고 좋은 대답을 얻을 수 있습니다. –
단위 테스트에서 환경 (파일 시스템, env 변수, 네트워크, 시간/날짜, 데이터베이스)을 유지하십시오. 아프다. 모든 것을 조롱해라. – Robert
@ 로버트 그걸 원하고 싶지만 생산 환경은 어떨까요? 대상 배포에서 classpath 파일의 존재 여부를 확인해야합니다. 테스트에서도 동작이 필요하지 않습니까? –