2011-05-02 5 views
4

아무도 Moq 프레임 워크를 사용하여 mock 객체를 사용하여 데이터 목록을 반환하는 방법을 알 수 있으며 반환 된 데이터 목록을 다른 List <> 변수에 할당 할 수 있습니다. ??Moq를 사용하여 데이터 또는 값 목록을 반환하는 방법?

+0

을 내가 목록 <> 형식으로 값을 반환하는 메서드를 호출하는 모의 객체를 사용하고 있습니다. – Neerajan

+1

몇 가지 샘플 코드를 추가하십시오. http://tinyurl.com/so-hints – jeroenh

답변

6
public class SomeClass 
{ 
    public virtual List<int> GimmeSomeData() 
    { 
     throw new NotImplementedException(); 
    } 
} 

[TestClass] 
public class TestSomeClass 
{ 
    [TestMethod] 
    public void HowToMockAList() 
    { 
     var mock = new Mock<SomeClass>(); 
     mock.Setup(m => m.GimmeSomeData()).Returns(() => new List<int> {1, 2, 3}); 
     var resultList = mock.Object.GimmeSomeData(); 
     CollectionAssert.AreEquivalent(new List<int>{1,2,3},resultList); 
    } 
} 
1

@ 리차드 뱅크스가 정답을주었습니다. 완성도를 들어, 당신이 원하는 경우 Moq v4 functional specifications를 사용하고 .Object 제거 :

void Main() 
{ 
    var list = new List<int> { 1, 2, 3 }; 

    ISomeInterface implementation = 
     Mock.Of<ISomeInterface>(si => si.GimmeSomeData() == list); 

    List<int> resultList = implementation.GimmeSomeData(); 

    foreach (int i in resultList) 
    { 
     Console.WriteLine(i); 
    } 
} 

public interface ISomeInterface 
{ 
    List<int> GimmeSomeData(); 
} 
관련 문제