C# NSubstitute Set AddRange 抛出空异常

问题描述

我有一个方法正在尝试使用 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](ICollection1 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)));

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)