Tôi có chức năng tôi muốn Moq. Vấn đề là phải mất 5 tham số. Khuôn khổ chỉ chứa Action<T1,T2,T3,T4>
và Moq's chung CallBack()
chỉ quá tải Hành động và bốn phiên bản chung. Có cách giải quyết thanh lịch cho việc này không?Moq một chức năng với hơn 5 tham số và truy cập đối số lời gọi
Đây là những gì tôi muốn làm:
public class Filter : IFilter
{
public int Filter(int i1, int i2, int i3, int i4, int i5){return 0;}
}
//Moq code:
var mocker = new Mock<IFilter>();
mocker.Setup(x => x.Filter(
It.IsAny<int>(),
It.IsAny<int>(),
It.IsAny<int>(),
It.IsAny<int>(),
It.IsAny<int>(),
It.IsAny<int>())
.Callback
(
(int i1, int i2, int i3, int i4, int i5) => i1 * 2
);
Moq không cho phép điều này vì không có hành động chung chung mà phải mất 5 + thông số. Tôi đã sử dụng cái cuống riêng của mình. Rõ ràng, nó sẽ là tốt hơn để sử dụng Moq với tất cả các xác minh của nó, vv
Có thể sẽ không giúp bạn, nhưng trong .NET 4.0 Action có thể mất đến 16 tham số! –
RichardOD
Ngay cả khi bạn ở trong .NET 4.0, Moq vẫn chỉ hỗ trợ tối đa 4 tham số trong phiên bản beta mới nhất của nó. Để khắc phục nó, bạn sẽ phải tải xuống nguồn và cuộn mã nguồn của riêng mình. –
Bạn có thể sử dụng phương pháp mở rộng – Thomas