수색…


IEnumerable 조롱

cannned 데이터를 반환하기 위해 IEnumerable 에서 상속받은 인터페이스를 조롱하는 것은 매우 간단합니다. 다음 클래스를 가정합니다.

public class DataClass
{
    public int Id { get; set; }
}

public interface IEnumerableClass : IEnumerable<DataClass>
{
}

다음과 같은 접근 방식을 취할 수 있습니다. 먼저 모의 객체에 의해 반환 될 필요가있는 정보를 담고있는 목록을 만든다 :

IList<DataClass> list = new List<DataClass>();
for (int i = 0; i < 10; i++)
{
    list.Add(new DataClass { Id = 20 + i });
}

그런 다음 IEnumerable 클래스 모의 객체를 만들고 GetEnumerator 메서드를 설정하여 목록의 열거자를 대신 반환합니다.

var mock = new Mock<IEnumerableClass>();
mock.Setup(x => x.GetEnumerator()).Returns(list.GetEnumerator());

이는 다음과 같이 유효성을 검사 할 수 있습니다.

int expected = 20;
foreach (var i in mock.Object)
{
    Assert.AreEqual(expected++, i.Id);
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow