2012-12-01 2 views
0

그래서 몇 주 전에 구현 한 클래스의 단위 테스트를 만들고 있습니다. 내가 먼저 일하고있는 수업의 특정 부분을 보여 드리겠습니다.메소드 테스트에서 인터페이스의 값을 설정했습니다.

public void PostEvent(eVtCompId inSenderComponentId, eVtEvtId inEventId, long inEventReference, IF_SerializableData inEventData) 
     { 
      if(mEventMap.ContainsKey(inEventId)) 
      { 
       mEventMap[inEventId](inSenderComponentId, inEventReference, inEventData); 
      } 
     } 

이 매개 변수에는 4 개의 매개 변수가 있습니다. 첫째, enum; 둘째, 다른 enum; 3 번째, 오래; 인터페이스 인 4th.

이 메서드가 작동하는 데 필요한 적절한 enum과 인터페이스를 모두 선언/코딩했다고 가정합니다. 바로 다음 비트는 단위 테스트 코드의 일부입니다. 당신이 볼 수있는 내가 인터페이스 값에 대한 수치를 알 수 없기 때문에

target.PostEvent(eVtCompId.MainWindowsCommDevice, eVtEvtId.OnLanguageChange, 3,); 

, 나는 마지막 인수에 대해 아직 아무것도 없습니다. 어떤 아이디어? 더 많은 정보가 필요하다고 생각하시면 언제든지 질문 해주십시오. 정리를 위해 최선을 다하고 있습니다.

답변

2

조롱 프레임 워크 (RhinoMock, Moq, ...)를 사용하고 인터페이스를 조롱하십시오. 아래의 Moq 샘플 :

var serializable = new Mock<IF_SerializableData>(); 
target.PostEvent(..., serializable.Object); 

또는 수동으로 테스트의 로컬 클래스에 인터페이스를 구현할 수 있습니다.

class MySerializable : IF_SerializableData {...} 

target.PostEvent(..., new MySerializable()); 
+0

대단히 감사합니다. 그냥 테스트이기 때문에 필자는 필러가 필요했습니다. 수동으로 인터페이스를 구현했습니다. 이제 문제없이 테스트가 실행됩니다. ^^ – Anthony

관련 문제