moq
Burlarse de las interfaces comunes
Buscar..
Burlándose de iEnumerable
Simular una interfaz que se hereda de IEnumerable
para devolver datos enlatados es bastante sencillo. Asumiendo las siguientes clases:
public class DataClass
{
public int Id { get; set; }
}
public interface IEnumerableClass : IEnumerable<DataClass>
{
}
El siguiente enfoque puede ser tomado. Primero, cree una lista que contenga la información que debe ser devuelta por el simulacro
IList<DataClass> list = new List<DataClass>();
for (int i = 0; i < 10; i++)
{
list.Add(new DataClass { Id = 20 + i });
}
Luego cree un simulacro de la clase IEnumerable
y configure su método GetEnumerator
para devolver el enumerador de la lista en su lugar:
var mock = new Mock<IEnumerableClass>();
mock.Setup(x => x.GetEnumerator()).Returns(list.GetEnumerator());
Esto se puede validar de la siguiente manera:
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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow