Sto provando a testare una proprietà che è annidata in una classe figlia. Ho sempre un errore. Mi manca qualcosa? E 'possibile testare una proprietà figlio in moq.Mocking ChildProperty non riesce a farlo funzionare?
Ho il seguente
[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; }
}
Grazie per la risposta. Stai dicendo che dovrei rendere virtuale quella proprietà e funzionerà? – user9969
Anche la creazione di OrderDataCollection virtuale potrebbe funzionare. In un'altra nota, le proprietà della raccolta devono essere di sola lettura. –
Grazie mille Mi sembra di capire ora. Ho realizzato un'interfaccia – user9969