인 메서드 호출을 확인합니다. "params"목록이있는 메서드가 호출되었지만 어떤 이유로이 함수가 실패했는지 Moq를 테스트하려고합니다. 방법 서명이 같은 것입니다 :Moq - 매개 변수 값이
void AttachAsModifiedToOrders(IOrder order, params
Expression<Func<IOrder, object>>[] modifiedProperties);
그런 다음 모의 설정에서 나는 이런 식으로 뭔가가 할 짓을했는지 간단한 조롱 컬렉션 "/ 삽입물을 분리"
마지막으로MockEntities.Setup(n => n.AttachAsModifiedToOrders(It.IsAny<DataAccess.Order>()))
.Callback<IOrder, Expression<Func<IOrder, object>>[]>((order, expr) =>
{ Orders.Remove(Orders.Where(o => o.Id== order.Id).First());
Orders.Add((DataAccess.Order)order); });
, 검증은 :
MockEntities.Verify(x => x.AttachAsModifiedToOrders(It.IsAny<Order>(),
It.IsAny<Expression<Func<IOrder, object>>>()), Times.Exactly(1));
나는 확인했습니다, 그리고 코드는 확인을 실행하고 방법합니다 (하나를 조롱)라고하지만, 검증이 실패합니다. 내가 놓친 게 있니? 또는이 "params"호출이 Moq에서 지원되지 않는다는 것입니까?
Moq의 버전은 무엇입니까? –
어셈블리가 4.0.0이라고 말합니다 –
아, 알았습니다. 나는 3과 3.1에 대한 오래된 버그 게시물을 보았다. –