2011-03-07 113 views
1

我在我的项目中使用.net单元测试。我想知道单元测试是否需要项目的UI部分,还是仅需要测试类库。.net单元测试 - 如何做UI单元测试

如果需要用户界面单元测试,我该如何测试功能,如在文本框中输入一些文本,并将这些内容写到网页上点击一个按钮。

在此先感谢。

回答

0

我认为通常的计划是在UI中尽可能少放置代码,将所有内容放入类中并进行单元测试。

可能创建一个影响UI并实际提供按钮点击发生的操作的类将有助于您单元测试尽可能多的功能。

+0

如果你在ASP.NET中使用任何框架,方法将不起作用,因为Web表单控件使用JavaScript,并且您不会成为ab以测试任何形式的AJAX或定制JavaScript。 – StuperUser 2011-03-07 10:03:17

0

我会看看网页自动化工具,例如Watinselenium来自动浏览器。

使用Watin,您可以使用.net以编程方式查找页面上的元素,Selenium可以记录和重放。

华廷例如

[Test] 
public void SearchForWatiNOnGoogle() 
{ 
    using (var browser = new IE("http://www.google.com")) 
    { 
    browser.TextField(Find.ByName("q")).TypeText("WatiN"); 
    browser.Button(Find.ByName("btnG")).Click(); 

    Assert.IsTrue(browser.ContainsText("WatiN")); 
    } 
} 
0

它的用户界面。你作为一个用户可以在运行你的项目后的每一个单元测试。

FirebugTamper Data是帮助您做到这一点的绝佳工具。

+0

这些是更多的调试工具,而不是单元测试工具。 – StuperUser 2011-03-07 09:59:33

+1

@StuperUser:任何让您更改数据以尝试破解单元的工具也是一种测试工具。测试和调试不是相互排斥的。 – 2011-03-07 10:21:50

+0

当然,它们在手动单元测试中非常有用。 Tamper Data看起来比Firebug更强大。 – StuperUser 2011-03-07 11:25:38

0

我已经成功通过单元测试我的Javascript与QUnit和拿起使用WatiN单个MSTest单元测试这些测试的结果。