LibLog를 사용할 때 로거에 대한 호출을 주장 할 수 있습니까? 사용에 대한 위키 나열 다음 예를 감안할 때 :LibLog - 로거에 대한 호출 불러 오기
public class MyClass
{
private static readonly ILog Logger = LogProvider.For<MyClass>();
}
을 여기 로거입니다이 라이브러리를 사용하는 이익의 대부분을입니다 소비자, 보이지 구현 세부 사항입니다. 라이브러리 소비자는 로거가 어떻게 인스턴스화되는지에 대해 걱정할 필요가 없습니다. 이 블로그 게시물에서 상대 :
http://dhickey.ie/2015/06/capturing-log-output-in-tests-with-xunit2/
내가 그것도 재 Serilog 출력을 사용하는 부여, 접근 방식에 대해 완전히 확실하지 않다, 보일러 플레이트의 많은 로그 출력을 캡처하기 위해 추가 것 같다 단위 테스트에서 라이브러리가 주어진 로그에 대한 추상화에만 의존해야한다는 것이 이상하게 보이는 부분입니까? , 이것은 아마 라이브러리의 소비자 이상한 것, 각 라이브러리는 다음 주입 할 필요가 자신의 ILogger
정의의 나를 것 -
로거를 주입 : 나는 현재 생각할 수있는
유일한 옵션은 추상화의 이점을 무너 뜨립니다.
실제 로깅 프레임 워크에 연결 - LibLog가 Log4Net 또는 유사한 것을 사용하도록 현재 LogProvider를 설정 한 다음 모의/스텁 Logger를 Log4Net에 삽입하고 프록시를 통해 호출을 주장합니다.
로거에 대한 호출을 주장하는 비교적 간단한 방법은 인정할 수 있지만 병렬 테스트 실행이 위의 로거에서 호출을 주장 할 수 있다고해도 문제가 될 것이라고 생각합니까?
기능 손실에 대한 당신이 로그인 할 때 호출을 테스트해야합니까?보통 필요하지 않습니다. – Artiom
@Artiom 왜 그렇게 요구되지 않습니까? 어떤 종류의 테스트가 로깅을 다루고 있습니까? – Mig
나는 내 프로젝트에서 그런 필요성을 느끼지 못했다. 그래서 내가 묻는거야. – Artiom