Estoy tratando de probar una propiedad que está anidada en una clase secundaria. Siempre me sale un error. ¿Me estoy perdiendo algo? ¿Es posible probar una propiedad infantil en moq.¿Mocking ChildProperty no puede hacer que funcione?
Tengo el siguiente
[Test]
public void Should_be_able_to_test_orderCollection()
{
var orderViewMock = new Mock<IOrderView>();
orderViewMock.SetupGet(o => o.Customer.OrderDataCollection.Count).Returns(2);
orderViewMock.SetupSet(o => o.Customer.OrderDataCollection[1].OrderId = 1);
orderViewMock.VerifySet(o => o.Customer.OrderDataCollection[1].OrderId=1);
}
public class CustomerTestHelper
{
public static CustomerInfo GetCustomer()
{
return new CustomerInfo
{
OrderDataCollection = new OrderCollection
{
new Order {OrderId = 1},
new Order {OrderId = 2}
}
};
}
}
public class CustomerInfo
{
public OrderCollection OrderDataCollection { get; set; }
}
public class OrderCollection:List<Order>
{
}
public class Order
{
public int OrderId { get; set; }
}
public interface IOrderView
{
CustomerInfo Customer { get; set; }
}
Gracias por su respuesta. ¿Estás diciendo que debería hacer que esa propiedad sea virtual y funcionará? – user9969
Hacer que OrderDataCollection virtual también funcione. En otra nota, las propiedades de la colección deben ser de solo lectura. –
Muchas gracias Parece que lo entiendo ahora. Hice una interfaz – user9969