【问题标题】:Null error while unit testing for webcontrols对 web 控件进行单元测试时出现空错误
【发布时间】: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


【解决方案1】:

我相信您正在使用 MS 单元测试项目来执行此操作。首先也是最重要的一点是 MS 单元测试无法测试与 UI 相关的任何内容,为此,我们有代码 UI 测试。对于您的问题,您应该考虑移出访问 Textbox 的代码(或与此相关的任何 UI 元素)。考虑将其作为参数传递给该函数,如下所示。

public int Add (int a, int b, int c)
{
   // Do Something
}

希望这有帮助!

【讨论】:

    猜你喜欢
    • 2017-04-07
    • 2017-06-02
    • 2017-07-21
    • 1970-01-01
    • 2013-01-01
    • 2021-01-25
    • 1970-01-01
    • 2017-07-21
    • 2015-10-23
    相关资源
    最近更新 更多