c# - 对给出 MissingMethodException 的私有方法进行单元测试
问题描述
我需要private
在我的单元测试中使用PrivateObject
.
private void UrgentBackupButton_Click(object parameter)
{
// Do Something...
}
这是我的单元测试:
[TestMethod]
public void TestMethod1()
{
//MainWindowViewModel main = new MainWindowViewModel();
PrivateObject privateObj = new
PrivateObject(typeof(MainWindowViewModel));
privateObj.Invoke("UrgentBackupButton_Click",null);
}
它给了我例外privateObj.Invoke("UrgentBackupButton_Click",null)
:
mscorlib.dll 中出现“System.MissingMethodException”类型的异常,但未在用户代码中处理
有人可以帮忙吗?
解决方案
单元测试应该测试 C# 类的公共接口。其他类无法访问私有方法,因此测试类也无法访问是有意义的。
UrgentBackupButton_Click
似乎是一个事件处理程序,所以如果你想测试它,你必须找到一种手动触发事件而不是调用它的方法,但这取决于你正在使用的平台(WPF、UWP、Xamarin 等)
推荐阅读
- node.js - Nodejs脚本中的Highcharts导出模块
- linux - 为什么在 ARM 上预取更多数据时会发生更多缓存未命中?
- r - 是否有将值从一列划分到另一列的每个(!)值的功能?在 R 中
- c# - 尝试在数据库中建立关系时“对象引用未设置为对象的实例”
- arrays - C中结构内的动态二维数组
- google-apps-script - Google 表格应用脚本:有条件的隐藏或显示列
- java - 将字符串转换为 HashMap
- c++ - Visual Studio / Qt - 无法打开源文件“QApplication”
- python - 在python中声明二维数组的语法之间的区别
- python - 字典或替代品中的自我参考