os
모듈 방법을 파이썬에서 어떻게 테스트 할 것입니까? 예를 들어 os.mkdir
의 사용을 테스트하려면 어떻게해야합니까?시험 방법
def create_folder(self):
os.mkdir("/parentFolder/newFolder")
이 방법을 테스트하는 데 사용할 수있는 것은 무엇입니까? 이 방법은 폴더를 확인
폴더를
os
모듈 방법을 파이썬에서 어떻게 테스트 할 것입니까? 예를 들어 os.mkdir
의 사용을 테스트하려면 어떻게해야합니까?시험 방법
def create_folder(self):
os.mkdir("/parentFolder/newFolder")
이 방법을 테스트하는 데 사용할 수있는 것은 무엇입니까? 이 방법은 폴더를 확인
폴더를
단위 테스트 create_folder
일 경우 은 테스트 os.mkdir
이 아닙니다. 여기에는 두 가지 이유가
그것은 (이 경우 표준 라이브러리,하지만 같은 타사 라이브러리의 경우 것) 외부 라이브러리의 일부이므로, 테스트 스위트에 포함되어야한다 그 도서관을 위해;
코드베이스의 일부 였지만 테스트중인 단위와는 다른 단위입니다.
또한,이 당신의 테스트, user2393256's answer에 의해 입증 된 바와 같이, 가능성이 동일한 외부 라이브러리에서 다른 기능을 사용하여이 될 것이라고 지적 가치 - 테스트가 실패 할 경우, 당신은 os.mkdir
이 작동하지 않았거나 결론을 수행 그 os.path.isdir
작동하지 않았습니까?
테스트의 관점에서 보면 실제로 중요한 것은 이과 정확하게 상호 작용한다는 것입니다. os.mkdir
을 모조 (예 : unittest.mock
등)하고 적절한 경로로 호출되는지 확인합니다. 모의의 반환 값과 부작용을 변경하여 불필요한 사용 권한이나 공간을 시뮬레이션하고 실제 환경을 설정하지 않고도 앱의 응답을 테스트 할 수 있습니다. create_folder
을 호출하는 다른 기능 단위를 테스트 할 때는 테스트를 거쳐 신뢰할 수있는 장치이므로 create_folder
을 완전히 조롱합니다.
단위 테스트 이외의 경우에는 통합 테스트 레벨이 있어야 응용 프로그램의 모든 부분이 올바르게 작동합니다.이 시점에서 전체 기능을 테스트합니다. 파일을 저장 한 다음 과 같은 세부 정보가 아니라 나중에 다시로드 할 수 있습니다. "폴더가 생성 되었습니까?"
마지막으로, 그리고 표준 라이브러리 기능을 위해 특별히 언어 자체가 테스트되었습니다 (최소한 이미 수천 개의 프로그램을 사용해도이 테스트를 거쳤 음)! 일.
공간이 부족을 만들
부족 권한을 생성 등의 테스트 케이스를했을
감독이 있는지 확인하려면 y는 당신이
권한에 관해서는os.path.isdir()
을 사용할 수 있습니다 생성 : 그것은이 경우 허가를
에 대한보다 용서를 물어 쉽게
을 말한다 파이썬 관용구가 나는 폴더를 만들고 던져 질 수있는 예외를 잡으려고합니다.
테스트하지 않고 테스트 * 프로그램의 상호 작용 *을 테스트합니다. 'os.mkdir'을 조롱하고 적절하게 호출되는지 확인하십시오. – jonrsharpe
@jonrsharpe 어떻게 그랬습니까? 함수의 나머지 테스트에서 mock 객체로 제안 된 답변과 같은 작업을 수행한다고 가정 해 주시겠습니까? – SJC
단위 테스트의 관점에서 그렇습니다. 'os.mkdir' 자체가 작동하는지 여부는 테스트 할 필요가 없습니다. 왜냐하면 여러분은 다른 os 메소드들과 (오라클의 답변이 제안한 것처럼) 확인할 수 있기 때문에, 어떤 점에서 어떻게 신뢰합니까? 단위 테스트에서'create_folder'를 전적으로 조롱합니다. 테스트되고 신뢰할 수있는 단위이기 때문입니다. 또한 특정 폴더가 너무 많이 생성되어 전체 기능이 작동하는지 (예 : 게임을 저장하는 경우 나중에 게임을로드 할 수 있는지 여부) 신경 쓰지 않는 상위 수준의 통합 테스트가 필요합니다. – jonrsharpe