将参数传递给PrivateObject方法

eom*_*off 15 c# unit-testing private-methods

我正在尝试单元测试私有方法.我在这个问题上看到了下面的例子

Class target = new Class();
PrivateObject obj = new PrivateObject(target);
var retVal = obj.Invoke("PrivateMethod");
Assert.AreEqual(retVal);
Run Code Online (Sandbox Code Playgroud)

我的私人方法有2个参考参数.如何通过?

Lee*_*Lee 23

如果传递参数数组,则将ref填充任何参数:

bool p1 = true; // can be others values
bool p2 = false; // can be others values
object[] args = new object[2] { p1, p2 };
var retval = obj.Invoke("PrivateMethod", args);

p1 = (bool)args[0];
p2 = (bool)args[1];
Run Code Online (Sandbox Code Playgroud)