如何最好地对Web应用程序进行单元测试

Eas*_*onk 10 unit-testing

我正在编写一个在UI方面非常复杂的Web应用程序,并且在很大程度上依赖于AJAX,DOM和图像处理.

是否有任何标准做法(我不需要工具)可以遵循以减少错误?

kro*_*old 10

一种非常简单的技术是烟雾测试,您可以自动点击所有应用程序.如果脚本运行且日志中的任何位置都没有错误,则至少有一个已定义的质量级别.

这种技术实际上捕获了大量的回归中断,并且比听起来更有效.我们为此使用.


Car*_*nke 6

分离逻辑和UI部分 - 在页面后面的代码中没有所有业务逻辑和复杂代码.而是将它们建立在标准层结构(数据层,业务规则/逻辑层,UI层)之外.这将确保您要测试的逻辑代码不会引用表单,而是使用易于单元测试的类.

对于一个非常基本的示例,没有执行此操作的代码:

string str = TextBox1.Text.ToString();
//do whatever your code does
TextBox2.Text = str;
Run Code Online (Sandbox Code Playgroud)

而是使用方法将逻辑提取到单独的类中:

TextBox2.Text = DoWork(TextBox1.Text.ToString());

public class Work
{
    public string DoWork(string str)
    {
      //do work
      return str2;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样您就可以编写单元测试来验证DoWork是否返回了正确的值:

string return = DoWork("TestThisString");
Run Code Online (Sandbox Code Playgroud)

现在,您的所有逻辑都是可单元测试的,只有代码可以直接在UI层中引用页面.