2017-12-13 19 views
1
var callArgs = new List<string>(); 
mock.Setup(foo => foo.DoSomething(It.IsAny<string>())) 
    .Returns(true) 
    .Callback((string s) => callArgs.Add(s)); 

는 마찬가지로 우리는 목록 매개 변수에 대한 콜백을 할 수있는 콜백 매개 변수 목록/컬렉션을받을 수 있나요?MOQ C# 콜백 우리는 왜 안 경우</p> <pre><code>var callArgs = new List<string>(); mock.Setup(foo => foo.DoSomething(It.IsAny<List<string>>())) .Returns(true) .Callback((List<string> s) => callArgs.AddRange(s)); </code></pre> <p>어떻게 든이 가능

var ex = new List(); myrMock.Setup (x => x.foo (It.IsAny>(), It.IsAny>(), It.IsAny())) 콜백 ((IList sy, IList v, 문자열 str) => ex .AddRange (sy));

전 목록에 아무것도 표시되지 않습니다.

+0

줬나을? – royalTS

+0

나는 시도했다 ... 나는 아래 오류 : –

+0

콜백이 잘못되었다. 매개 변수 (IList'1, IList'1, String)가있는 메소드에서의 설정은 매개 변수 (List'1)로 콜백을 호출 할 수 없습니다. –

답변

2

예, 설명한대로 할 수 있습니다.

또는이 형식을 사용할 수 있습니다 : 당신이이 시도

var callArgs = new List<string>(); 
mock.Setup(foo => foo.DoSomething(It.IsAny<List<string>>())) 
    .Returns(true) 
    .Callback<List<string>>(s => callArgs.AddRange(s)); 

https://github.com/Moq/moq4/wiki/Quickstart