하위 클래스에 중첩 된 속성을 테스트하려고합니다. 나는 항상 오류가 발생합니다. 내가 빠진 것이 있습니까? moq에서 하위 속성을 테스트 할 수 있습니까?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