2011-12-19 7 views
0

저는 Pex와 Moles를 처음 사용했기 때문에 매개 변수 테스트를 이용하고 싶습니다. 나는 생성자 주입을 사용하고 있으며, 내 매개 변수에 대한 두더지 스텁을 만들고 싶습니다. Aole 스텁 생성

public UserLogic(IUserRepository userRepository) 
{ 
    _userRepository = userRepository; 
} 

필자가 읽은 문서

은 두더지가 SIUserRepository의 저장소 (repository)의 그루터기 유형을 생성 할 것이라고 말했습니다. 하지만 스텁을 생성하는 방법을 알아낼 수 없습니다. 누구든지 예제를 제공 할 수 있습니까? 감사합니다.

+0

'SIUserRepository'유형이 자동으로 생성되므로 'IUserRepository' 유형이 포함 된 어셈블리에 대한 moles 어셈블리를 추가하기 만하면됩니다. "스텁 유형의 인스턴스를 만드는 방법"을 묻는 것을 의미합니까? – Gebb

답변

0

아직 Moles 어셈블리를 작성하지 않았다고 가정합니다. 다음은 몇 가지 기본 단계입니다. 당신의 단위 테스트 프로젝트의

  1. , 참조를 확장 한 유형의 IUserRepository 포함 된 어셈블리를 마우스 오른쪽 단추로 클릭 - '두더지 회의 추가'를 선택;
  2. '.Moles'네임 스페이스 아래에 Moles 스터브 & 몰을 사용할 수 있습니다. 따라서 MyAsssembly.SomeNamespace.IUserRepository가있는 경우 이제 MyAssembly.SomeNameSpace.Moles로 사용할 수있는 스텁 유형을 갖게됩니다. .SUserRepository

이제 일부 UserLogic_Test 메소드에서 스텁을 다음과 같이 참조 할 수 있습니다.

[TestMethod] 
public void UserLogic_Test() 
{ 
    MyAssembly.SomeNameSpace.Moles.SUserRepository mock = new SUserRepository(); 
    UserLogic o = new UserLogic(mock); 
    Assert.AreEqual(1, o.SomeMethod()); 
} 
+0

스텁이 올바로 생성되지 않아 실행 한 한 가지 문제점은 프로젝트에 해당하는 .moles 파일에 속성이있는 경우입니다. 누가 거기에 추가했는지 확실하지 않지만 확실히 찾을 수있는 슬픔이 생겼습니다. RJ가 제안한대로 완료했지만 여전히 스텁을 생성하지 않으면 .moles 파일을 확인하십시오! – kodjeff1