Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类型为的最小起订量。缺少参数_C#_Excel_Moq_Excel Interop - Fatal编程技术网

C# 类型为的最小起订量。缺少参数

C# 类型为的最小起订量。缺少参数,c#,excel,moq,excel-interop,C#,Excel,Moq,Excel Interop,我试图模拟Excel的互操作名称。Add() 看起来像这样 Name Add(object Name = Type.Missing, object RefersTo = Type.Missing, object Visible = Type.Missing, object MacroType = Type.Missing, object ShortcutKey = Type.Missing, object Category = Type.Missing, object NameLocal = T

我试图模拟Excel的互操作名称。Add() 看起来像这样

Name Add(object Name = Type.Missing, object RefersTo = Type.Missing, object Visible = Type.Missing, object MacroType = Type.Missing, object ShortcutKey = Type.Missing, object Category = Type.Missing, object NameLocal = Type.Missing, object RefersToLocal = Type.Missing, object CategoryLocal = Type.Missing, object RefersToR1C1 = Type.Missing, object RefersToR1C1Local = Type.Missing);
我正在尝试使用Callback()设置本地集合,以证明正确调用了Add():

names.Setup(n => n.Add(It.IsAny<object>(), It.IsAny<object>(), It.IsAny<object>(), Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing)).Callback(
                    (object name, object r, object a, object b, object c, object d, object e, object f, object g, object h, object i) =>
{
    nameList.Add((string)name);
    rangeList.Add(((Microsoft.Office.Interop.Excel.Range)r).Formula);
});
这会引发异常

“其他信息:缺少的参数没有默认值。”

我尝试过使用null而不是Type.Missing进行安装,但只有在显式使用

var result = names.Add(name, cell, true, null, null, null, null, null, null, null, null);
但我不想为了单元测试而改变我真正的代码


有什么建议吗?

为什么不使用
It呢?任何
对于设置TestMember时应该提到的所有参数,我是这样做的,第一个-当实际调用names.Add()时,“缺少的参数没有默认值”存在同样的问题,即使使用了.Any并填充了其余的名称。Add()类型为的呼叫。缺少不起作用。names.Add()中的null将用于null或Setup()调用中的.Any。问题是我真的不想更改names.Add()以使所有这些空值仅用于测试,所以我最终扩展了names接口,并使Add()和模拟该类作为从workbook.names中的names对象返回的内容。让我在不更改代码的情况下进行单元测试,但在moq框架中似乎仍然是一个bug
 at System.Reflection.MethodBase.CheckArguments(Object[] parameters, Binder binder, BindingFlags invokeAttr, CultureInfo culture, Signature sig)
   at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at System.Delegate.DynamicInvoke(Object[] args)
   at Moq.Extensions.InvokePreserveStack(Delegate del, Object[] args) in C:\projects\moq4\Source\Extensions.cs:line 108
var result = names.Add(name, cell, true, null, null, null, null, null, null, null, null);