我有一种方法正在尝试使用 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, IEnumerable
1 个元素)
如果我只将一个元素传递给列表,它可以正常工作,没有错误我的意思是
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)));