Я пытаюсь проверить свойство, которое вложен в дочерний класс. Я всегда получаю сообщение об ошибке. Я что-то упустил? Возможно ли проверить свойство ребенка в moq.Mocking ChildProperty не может заставить его работать?
У меня есть следующие
[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; }
}
Спасибо за ваш ответ. Вы говорите, что я должен сделать это свойство виртуальным, и оно будет работать? – user9969
Создание виртуального приложения OrderDataCollection также может работать. С другой стороны, свойства коллекции должны быть доступны только для чтения. –
Спасибо большое Я, кажется, понимаю это сейчас. Я сделал интерфейс – user9969