2010-07-26 9 views
2

연속 통합 환경에있는 것보다 다른 권한 수준이 필요한 단위/통합 테스트 코드는 어떻게 작성합니까?권한이 부여 된 작업의 자동화 된 테스트

루트가 아닌 CCRB 기반의 빌드 환경에서 필자는 자동 빌드 환경에서 보유하지 않은 권한 (루트 권한 또는 특별 계정 및 그룹)을 가정하는 유틸리티 기능을 가지고 있습니다. 예를 들어 하나의 함수가 UID/GID 및 보조 그룹을 지정된 계정으로 변경하고 루트 및 현재 작업 디렉토리를 변경하며 모든 제어 터미널에서 이혼을합니다.

물론 수동으로 테스트를 실행할 수는 있지만 우리는 그들을 실행하는 것을 잊을 수도 있습니다.

다른 사람들이이 문제에 어떻게 대처 했습니까?

답변

0

나는 가짜 인터페이스 뒤에있는 보안 관리 코드를 분석하려고합니다. 그래서 유닛 테스트에서 위조 된 권한을 제공 할 수 있습니다.

이 방법을 사용하면 함수가 실패한 필수 권한과 부여 된 권한을 가진 권한을 제외하고 수행 할 작업을 모두 테스트 할 수 있습니다.

자세한 내용이 없으면 자세히 말하기 어렵습니다.

+0

예를 들어, UID/GID, 작업 디렉토리 및 파일 시스템 루트를 변경하는 기능을 루트로 테스트하는 방법을 명확히 할 수 있습니까? – pilcrow

+0

@pilcrow, 내가 말했듯이, 나는 두 가지 구현, 즉 생산에 사용되는 실제 인터페이스와 단위 테스트를위한 모의 구현을 포함하여 모의 인터페이스 뒤에 숨은 모든 기능을 숨기려고 노력할 것이다. 필요한 값을 반환하고 메소드 호출 및 매개 변수 값을 감지 할 수있게합니다. 따라서 유닛 테스트 환경에서 필자는 어떤 권한이든 "확인"할 수 있었고 실제로 시스템 상태를 변경하는 부작용이없는 적절한 매개 변수를 사용하여 적절한 메소드가 호출된다는 것을 알 수있었습니다. –

+0

, 내가 테스트하고자하는 것은 "보안 관리 코드"입니다. 나는 모의 권한을 털어 놓았는지 모의하고 싶지 않습니다. 실제 권한을 발급했는지 확인하고 싶습니다. – pilcrow

관련 문제