C# 使用 Invoke 实现函数的白盒 UT 测试

公有方法可以直接调用,但是一些非公开的方法,在覆盖率测试的时候也需要覆盖,可以使用 Invoke 来调用。

调用方法如下,其中 this 可以改为被调用的方法所属的类名,通过 BindingFlags 来指定被调用的方法的访问权限等属性信息

object[] methodParams = new object[] { "参数1","参数2" };
MethodInfo dynMethod = this.GetType().GetMethod("方法名", BindingFlags.NonPublic | BindingFlags.Instance);
dynMethod.Invoke(this, new object[] { methodParams });

调试时,直接在被测试的代码中打断点就可以了。