C# 网络控制单元测试时出现空错误

C# 网络控制单元测试时出现空错误,c#,asp.net,.net,unit-testing,testing,C#,Asp.net,.net,Unit Testing,Testing,我正在尝试对函数进行单元测试 int add(a,b) { int c = txtInputBox.value; int d = a+b+c; return d; } 这里,我只是传递值a和b。我没有传递C的值。它是从文本框中获取的 当我在我的web应用程序项目中调用该函数时,该函数运行良好,因为我从aspx页面控件中获取了C值 但是,当我从单元测试项目运行此函数时,文本框控件失败,因为页面不会加载,所以文本框也不会加载。函数add(a,b)通过单元测试项目执行 因此,TXInpu

我正在尝试对函数进行单元测试

int add(a,b)
{
  int c = txtInputBox.value;
  int d = a+b+c;
  return d;
}
这里,我只是传递值a和b。我没有传递C的值。它是从文本框中获取的

当我在我的web应用程序项目中调用该函数时,该函数运行良好,因为我从aspx页面控件中获取了C值

但是,当我从单元测试项目运行此函数时,文本框控件失败,因为页面不会加载,所以文本框也不会加载。函数add(a,b)通过单元测试项目执行

因此,TXInputBox将为空

这意味着单元测试将出现调试错误,null异常和单元测试将被捕获,而单元测试将失败


如何解决此问题?

我相信您正在使用MS单元测试项目来完成此任务。首先也是最重要的一点是,MS单元测试无法测试任何与UI相关的东西,为此,我们有代码UI测试。到你的问题,你应该考虑搬出代码访问文本框(或者任何UI元素)。考虑把它作为一个参数传递给这个函数,如下所示。
public int Add (int a, int b, int c)
{
   // Do Something
}
希望这有帮助

与其让add()函数依赖于UI控件,不如传入第三个参数c,让调用代码从TXInputBox获取值c。这样可以将代码与表单实现分离。