저는 Moq를 사용하여 여러 인덱서로 개체 집합을 가짜로 만들려고했습니다. 이전에 Moq를 단일 인덱서로 오랫동안 사용했지만 여러 인덱서를 사용하여 작동하지 않는 것 같습니다. 내 연구에서 Moq가 인덱서 매개 변수에 대해 It.IsAny <>을 사용하는 데 문제가있을 수 있음을 알고 있지만 mock [1, "BlockItem"]과 같은 특정 매개 변수로 다음 코드를 시도했습니다. 내 코드는 다음과 같습니다.Moq에서 여러 인덱서 사용
m_storageAccessor.SetupSet(
mock => mock[It.IsAny<int>(), It.IsAny<string>()] = It.IsAny<object>()).Callback(
(int i, string s, object o) =>
{
m_storageAccessor.SetupGet(
mock => mock[i, s]).Returns(
() => { return o; });
});
이렇게하면 SetupSet()에서 인덱서 기능을 제공하는 매개 변수에 관계없이 다음 예외가 다시 발생합니다.
초기화 방법 UnitTest.BonusHandlerTest.MyTestInitialize 던져 예외. System.ArgumentNullException : System.ArgumentNullException : 값을 null 일 수 없습니다. 매개 변수 이름 : 인수
System.Linq.Expressions.Expression.ValidateArgumentTypes (MethodInfo 방법 ReadOnlyCollection
1& arguments) System.Linq.Expressions.Expression.ValidateCallArgs(Expression instance, MethodInfo method, ReadOnlyCollection
1 & 인수) System.Linq.Expressions.Expression.Call (식 인스턴스 MethodInfo 방법을 IEnumerable1 arguments) System.Linq.Expressions.Expression.Call(Expression instance, MethodInfo method, Expression[] arguments) TCall](Mock
1 모의, 액션1 setterExpression, Func
5 callFactory) b__25() Moq.PexProtector.Invoke [T] (Func을1 function) Moq.Mock.SetupSet[T](Mock
1 모의, 액션1 setterExpression, Func
조건 1) SetupSet (Action`1 setterExpression) UnitTest.BonusHandlerTest.SetupPersistence()에 C : \ 퍼포 \ DEV \ KHIRST_Client12.BonusHandler \ Client12 \ Gami NG \ BonusHandler \ 유닛 테스트 \의 BonusHandlerTest.cs : 라인 C 868 UnitTest.BonusHandlerTest.MyTestInitialize() : \ 퍼포 \ DEV \ KHIRST_Client12.BonusHandler Client12 \ 게임 \ BonusHandler \ 유닛 테스트 \ BonusHandlerTest.cs \ 라인 100
Moq이 여러 매개 변수를 사용하여 인덱서를 수행 할 수 없다고 거의 대부분 비슷하게 보입니다. 누구든지 아이디어가 있습니까? interwebs는별로 도움이되지 않았습니다. 그것은 가치가 무엇인지에 대한
고마워, 에릭, 그것을 확인해 주셔서 감사합니다. 이것에 대한 구식 테스트 구성 요소와 함께 가야 할 것처럼 보입니다. –