2014-05-15 5 views
1

DB에 객체를 쓰고 업데이트 할 때 권한 검사를 위해 클래스를 작성하기 시작했습니다. 개발 및 테스트를 위해 권한 확인은 재생 구성 값을 통해 비활성화 할 수 있습니다. 첫 번째 시도는 권한 검사가 활성화 된 상태에서 테스트를 작성하는 것이 었습니다. 테스트가 실행되는 동안 검사가 비활성화 된 경우, 단순히 물론config가 결과에 영향을 줄 때 적절한 테스트가 필요합니까?

org.junit.Assume.assumeTrue(false); 

이 권한 검사가 비활성화되었을 때 개발, 테스트 아마 실행되지 않을 수 있다는 것을 의미 통해 테스트를 해제합니다.

각 테스트마다 두 개의 코드 경로가 있어야 하나, 하나는 config를 사용하도록 설정하고 하나는 설정을 사용하지 않도록 설정 했습니까?

또한 정적 메서드 대체를 통해 구성 값을 주입하는 조롱 프레임 워크를 소개 할 때입니까? 인터넷 검색 때 나는 직업을 위해 PowerMock을 권하는 https://blog.codecentric.de/en/2011/11/testing-and-mocking-of-static-methods-in-java/을 우연히 발견했습니다.

대안으로 재생 구성 값에 대한 정적 래퍼 클래스를 만들고 여기에 값을 변경할 수 있습니다.

어느 쪽이 바람직합니까? 구성을 구성 할 수 있도록 -

  1. 내가 # 1 투표 의지

답변

0

에서 (정적) 방법을 변경하는 조롱 프레임 워크를 사용하여 런타임

  • 중에 설정을 구성합니다. 내 응용 프로그램 중 하나에서 "프레임 워크"(수퍼 클래스의 두 가지 메서드)를 작성하여 테스트에서 보안 역할이 무엇을 원하는지 말할 수있게했습니다 (그리고 마지막에 다시 넣기). 이를 통해 테스트는 다른 모든 조건과 독립적으로 실행할 역할을 선택하도록합니다.

    다른 구성 유형에도 동일한 방법을 사용했습니다.