【发布时间】:2017-09-15 09:16:27
【问题描述】:
我正在尝试对函数进行单元测试
int add(a,b)
{
int c = txtInputBox.value;
int d = a+b+c;
return d;
}
在这里,我只是传递值 a 和 b。我没有传递 C 的值。它取自文本框。
当我在我的 Web 应用程序项目中调用该函数时,该函数工作正常,因为我从 aspx 页面控件中获取了 C 的值。
但是当我从单元测试项目中运行这个函数时,文本框控件失败,因为页面不会被加载,所以文本框也不会被加载。函数add(a,b)通过单元测试项目执行。
因此,txtInputBox 将为空
这个单元测试进入调试错误,空异常和单元测试去捕获并且单元测试失败。
如何解决这个问题?
【问题讨论】:
-
与其让 add() 函数依赖于 UI 控件,不如直接传入第三个参数 c 并让调用代码从 txtInputBox 中获取值 c。这样您就可以将代码与表单实现分开。
标签: c# asp.net .net unit-testing testing