2013-02-14 4 views
3

종속성 주입은 Postsharp에서 작동하지 않습니다. 테스트 할 수있는 부분을 어떻게 만들 수 있습니까? 내 측면에서 로깅을위한 구체적인 클래스를 만드는 것을 피하고 싶습니다.Postsharp를 어떻게 테스트 할 수 있습니까?

단위 테스트 메서드를 사용할 때 aspect가 실행되는 것을 원하지 않습니다. 메소드를 테스트하는 중이면 로깅 측면을 발사하지 않고 테스트 중에 콘크리트 로거를 작성하려고하지 않습니다.

나는 포스트 샤프의 아이디어를 좋아하고 실제로 그것을 사용하고 싶지만,이 두 가지 문제는 나를 위해 너무 많은 문제를 일으키는 것으로 보인다.

아이디어가 있으십니까?

답변

0

log4net과 같은 타사 도구의 경우 구성 언어가 강력하여 (예를 들어) 단위 테스트 프로젝트에서 로깅 애스펙트를 한 가지 방법으로 구성하고 실제 프로젝트에서 다른 방식으로 구성 할 수 있습니다. 따라서 로깅 애스펙트는 유닛 테스트에서도 실행되지만 실제로는 이 될 수 있습니다.

다른 도구 또는 사용자 지정 솔루션의 경우 aspect 논리 내부의 인터페이스로 프로그래밍하는 것이 좋습니다. 그런 다음 정적 구성 파일이나 프로젝트 별 설치 코드를 기반으로 프로덕션 코드에 대한 인터페이스 구현을 지정하고 단위 테스트 프로젝트에 대한 인터페이스 구현을 지정할 수 있습니다 (부작용이 없거나 더 나은 스텁 구현 일 수 있습니다. 은 단위 테스트에서 잠재적 인 확인을 위해이 발생했습니다.

0

더 나은 방법 : MSBuild 명령을 사용하여 단위 테스트 프로젝트에서 PostSharp를 사용하지 않도록 설정할 수 있습니다. this discussion을 참조하십시오.

관련 문제