我正在尝试对功能进行单元测试
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将为null
单元测试进入调试错误,null异常和单元测试进入catch并且单元测试失败。
如何解决这个问题?
答案 0 :(得分:1)
我相信你正在使用MS Unit Test Project来做这件事。首先,MS Unit Test无法测试与UI相关的任何内容,为此,我们进行了代码UI测试。在提出您的问题时,您应该考虑移出访问Textbox的代码(或任何UI元素)。考虑将其作为参数传递给此函数,如下所示。
public int Add (int a, int b, int c)
{
// Do Something
}
希望这有助于!!