단위 테스트 aspect 지향 응용 프로그램 기능에 대한 최선의 방법으로 무엇을 제안하겠습니까 (글쎄요, 아마도 이것이 최고의 이름은 아니지만, 제가 올 수 있었던 최선의 방법입니다). 위로 :-)) 로깅이나 보안과 같은?단위 테스트 aspect 지향적 인 기능
이러한 것들은 응용 프로그램에서 옴니 존재하는 일종입니다, 그래서 어떻게 제대로 테스트 할 수 있습니까?
예. Python으로 Cherrypy 웹 서버를 작성한다고 가정 해 보겠습니다. 데코레이터를 사용하여 로그인 한 사용자가 주어진 페이지에 액세스 할 수있는 권한이 있는지 확인할 수 있습니다. 그런 다음 모든 페이지에 대한 테스트를 작성하여 작동 여부를 확인해야합니다 (또는 해당 페이지에 대한 보안 퍼미션을 확인하는 것을 잊어 버린 경우가 많음).
로깅 및/또는 보안이 웹 서버 "정상적인 비즈니스 구현"중에 구현 된 경우 이는 아마도 (강조 할 수도 있음) 가능성이 있습니다. 그러나 보안 및 로깅 일반적으로 후속으로 응용 프로그램에 추가되는 경향이 (또는 어쩌면 그것은 단지 내 경험, 나는 일반적으로 서버를 부여한 다음 보안 모델을 구현하도록 요청했습니다 :-)).
모든 의견을 환영합니다. 나는 현재이 문제를 '해결'했는데, 전혀 테스트하지 않았다. 감사합니다. .
개별 코드 모듈을 테스트하지 않으므로 설명하는 것이 "기능 테스트"라고하는 것이 더 좋을 것이라고 생각했을 것입니다. 그런 것들을 테스트하는 것이 다른 종류의 테스트와 다른 이유는 무엇입니까? 일련의 인풋과 예상되는 아웃풋 또는 비헤이비어가 있습니다. –
흠, 나쁜 점은 아닙니다. 이러한 작업 (예 : 로깅)이 응용 프로그램과 "분리 된"것처럼 보입니다. 그들은 애플 리케이션의 "원시 출력"을 변경하지 않고 오히려 부작용 만 추가하므로 테스트는 기존 테스트를 복제하는 것을 의미합니다. –