以 string[] 作为参数调用方法时出现 PrivateObject NullReferenceException
PrivateObject NullReferenceException on invocation of method with string[] as parameter
我正在尝试为使用 string[]
作为参数的私有方法编写单元测试。调用私有方法适用于 PrivateObject
class,但是当我尝试使用 string[]
.
调用它时却没有
测试returns
System.NullReferenceException: Object reference not set to an instance of an object
调用时。
这是 class,其中包含我需要调用的方法:
public class Program{
public Program(){}
private void TestCommand(string[] command){}
}
我尝试了以下方法:
Program program = new Program();
PrivateObject privateObject = new PrivateObject(program);
object[] parameters = new object[1] {
new string[2] {
"add",
"rando"
}
};
/* doesn't work either
object[][] parameters = new object[1][];
parameters[0] = new string[2];
parameters[0][0] = "add";
parameters[0][1] = "rando";*/
privateObject.Invoke("TestCommand", parameters);
事实证明调用没有任何问题。相反,异常发生在从 TestCommand 中调用的方法中。方法中使用的字段未分配。从 Visual Studio 中收到的错误消息来看,这一点一点都不清楚,它看起来好像异常发生在 Invoke 方法中。
我正在尝试为使用 string[]
作为参数的私有方法编写单元测试。调用私有方法适用于 PrivateObject
class,但是当我尝试使用 string[]
.
测试returns
System.NullReferenceException: Object reference not set to an instance of an object
调用时。
这是 class,其中包含我需要调用的方法:
public class Program{
public Program(){}
private void TestCommand(string[] command){}
}
我尝试了以下方法:
Program program = new Program();
PrivateObject privateObject = new PrivateObject(program);
object[] parameters = new object[1] {
new string[2] {
"add",
"rando"
}
};
/* doesn't work either
object[][] parameters = new object[1][];
parameters[0] = new string[2];
parameters[0][0] = "add";
parameters[0][1] = "rando";*/
privateObject.Invoke("TestCommand", parameters);
事实证明调用没有任何问题。相反,异常发生在从 TestCommand 中调用的方法中。方法中使用的字段未分配。从 Visual Studio 中收到的错误消息来看,这一点一点都不清楚,它看起来好像异常发生在 Invoke 方法中。