2014-03-26 5 views
0

EventLogRecord 객체를 처리하기위한 API를 구현했습니다.단위 테스트 용 EventLogRecord 생성

using System.Diagnostics.Eventing.Reader; 

... 
MyLog ProcessEvent(EventLogRecord eventRecord) 

는 지금, 나는 public 생성자가없는이와 EventLogRecord에 대한 단위 테스트를 생성합니다. 이벤트 로깅 시스템에 연결하지 않고 EventLogRecord 개체를 얻으려면 어떻게해야합니까?

답변

0

이 (비 가상) 작업과 같이 테스트 할 수없는 항목을 만드는 표준 방법은 래퍼를 사용하는 것입니다. 여기에 아이디어의 일부 pseducode은 다음과 같습니다

WrapperEventLogRecord : IEventLogRecordWrapper 
{ 
    ctor(EventLogRecord eventLogRecord) 
    public ActivityId {get{return _eventLogRecord.ActivityId;}} 
} 

이제 인터페이스를 전달하고 필요

+0

큰 그것을 조롱 수 있습니다! 줄 바꿈으로 문제가 해결됩니다. 다른 옵션은 없습니까? 나는 오버 헤드에 대해 약간 걱정하고있다. – Icerman

+0

기본 조롱 프레임 워크를 사용하는 경우에는 아니요. 여기에 내 대답없는 질문을 참조하십시오 : http://stackoverflow.com/questions/17203061/is-a-wrapper-the-only-way-to-test-a-static- dependency 당신은 TypeMock과 같은 강력한 조롱을 사용하여 개인 ctor, 그래도? –