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

时间:2009-02-20 17:15:15

标签: unit-testing

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

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

4 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:5)

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

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

string str = TextBox1.Text.ToString();
//do whatever your code does
TextBox2.Text = str;

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

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

public class Work
{
    public string DoWork(string str)
    {
      //do work
      return str2;
    }
}

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

string return = DoWork("TestThisString");

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

答案 2 :(得分:2)

Watin是一个很棒的工具。

答案 3 :(得分:1)

简单的清单(即使在一张纸上!)是确保您永远不会跳过重要事情的最佳方法。这是一个很好的“冒烟测试”,没有任何“标准”被打破。