0

我有一种方法正在尝试使用 NSubstitute 进行模拟,这是正在运行的代码

var sharedProviderIdList = Substitute.For<ISet<string>>();
var set = new HashSet<string>();
sharedProviderIdList
    .When(x => x.AddRange((IEnumerable<string>)Arg.Any<object>()))              
    .Do(callInfo => set.AddRange(callInfo.ArgAt<IEnumerable<string>>(0)));

代码抛出此错误

System.ArgumentNullException:值不能为空。参数名称:元素堆栈跟踪:CollectionExtensions.AddRange[T](ICollection 1 collection, IEnumerable1 个元素)

如果我只将一个元素传递给列表,它可以正常工作,没有错误我的意思是

var sharedProviderIdList = Substitute.For<ISet<string>>();
var set = new HashSet<string>();
sharedProviderIdList
    .When(x => x.Add(Arg.Any<string>()))              
    .Do(callInfo => set.Add(callInfo.ArgAt<string>(0)));
4

0 回答 0