2016-06-27 4 views
1

os 모듈 방법을 파이썬에서 어떻게 테스트 할 것입니까? 예를 들어 os.mkdir의 사용을 테스트하려면 어떻게해야합니까?시험 방법

def create_folder(self): 
    os.mkdir("/parentFolder/newFolder") 

이 방법을 테스트하는 데 사용할 수있는 것은 무엇입니까? 이 방법은 폴더를 확인

  • 폴더를

+2

테스트하지 않고 테스트 * 프로그램의 상호 작용 *을 테스트합니다. 'os.mkdir'을 조롱하고 적절하게 호출되는지 확인하십시오. – jonrsharpe

+0

@jonrsharpe 어떻게 그랬습니까? 함수의 나머지 테스트에서 mock 객체로 제안 된 답변과 같은 작업을 수행한다고 가정 해 주시겠습니까? – SJC

+1

단위 테스트의 관점에서 그렇습니다. 'os.mkdir' 자체가 작동하는지 여부는 테스트 할 필요가 없습니다. 왜냐하면 여러분은 다른 os 메소드들과 (오라클의 답변이 제안한 것처럼) 확인할 수 있기 때문에, 어떤 점에서 어떻게 신뢰합니까? 단위 테스트에서'create_folder'를 전적으로 조롱합니다. 테스트되고 신뢰할 수있는 단위이기 때문입니다. 또한 특정 폴더가 너무 많이 생성되어 전체 기능이 작동하는지 (예 : 게임을 저장하는 경우 나중에 게임을로드 할 수 있는지 여부) 신경 쓰지 않는 상위 수준의 통합 테스트가 필요합니다. – jonrsharpe

답변

2

단위 테스트 create_folder 일 경우 테스트 os.mkdir이 아닙니다. 여기에는 두 가지 이유가

  1. 그것은 (이 경우 표준 라이브러리,하지만 같은 타사 라이브러리의 경우 것) 외부 라이브러리의 일부이므로, 테스트 스위트에 포함되어야한다 그 도서관을 위해;

  2. 코드베이스의 일부 였지만 테스트중인 단위와는 다른 단위입니다.

또한,이 당신의 테스트, user2393256's answer에 의해 입증 된 바와 같이, 가능성이 동일한 외부 라이브러리에서 다른 기능을 사용하여이 될 것이라고 지적 가치 - 테스트가 실패 할 경우, 당신은 os.mkdir이 작동하지 않았거나 결론을 수행 그 os.path.isdir 작동하지 않았습니까?

테스트의 관점에서 보면 실제로 중요한 것은 과 정확하게 상호 작용한다는 것입니다. os.mkdir을 모조 (예 : unittest.mock 등)하고 적절한 경로로 호출되는지 확인합니다. 모의의 반환 값과 부작용을 변경하여 불필요한 사용 권한이나 공간을 시뮬레이션하고 실제 환경을 설정하지 않고도 앱의 응답을 테스트 할 수 있습니다. create_folder을 호출하는 다른 기능 단위를 테스트 할 때는 테스트를 거쳐 신뢰할 수있는 장치이므로 create_folder을 완전히 조롱합니다.

단위 테스트 이외의 경우에는 통합 테스트 레벨이 있어야 응용 프로그램의 모든 부분이 올바르게 작동합니다.이 시점에서 전체 기능을 테스트합니다. 파일을 저장 한 다음 과 같은 세부 정보가 아니라 나중에 다시로드 할 수 있습니다. "폴더가 생성 되었습니까?"

마지막으로, 그리고 표준 라이브러리 기능을 위해 특별히 언어 자체가 테스트되었습니다 (최소한 이미 수천 개의 프로그램을 사용해도이 테스트를 거쳤 음)! 일.

0
를 만들 폴더를

  • 공간이 부족을 만들

  • 부족 권한을 생성 등의 테스트 케이스를했을

    감독이 있는지 확인하려면 y는 당신이

    권한에 관해서는
    os.path.isdir() 
    

    을 사용할 수 있습니다 생성 : 그것은이 경우 허가를

    에 대한보다 용서를 물어 쉽게

    을 말한다 파이썬 관용구가 나는 폴더를 만들고 던져 질 수있는 예외를 잡으려고합니다.