65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 NUnitASP 测试 HTML 控件

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.69/5 (5投票s)

2005 年 8 月 6 日

2分钟阅读

viewsIcon

39158

downloadIcon

5

通常,NUnitASP 用于测试 ASPX 页面上的 Web 控件(UI)。本文解释了如何测试 ASPX 页面上的 HTML 控件。

引言

本文介绍了如何通过 NUnitASP 测试 ASPX 页面上的 HTML 控件。 通常,NUnitASP 测试 ASPX 页面上的 Web 控件。 即使 NUnit 提供了足够的支持来测试大多数 Web 控件,有时也需要测试 ASPX 页面的 HTML 控件。 NUnit 为 HTML 控件提供了 2 个测试器对象。 在本文中,我将简要介绍如何测试其他 HTML 控件,如 Label、Button、Table 等。

NUnitASP 使用响应文本来测试 Web 控件或 HTML 控件的值。 响应文本通常采用 HTML 格式。 这意味着 IIS 为响应中的 Web 控件发出 HTML 格式。 我们可以利用此响应文本,并在响应文本中搜索并找到所需 HTML 控件的值。

测试 Web 控件

使用 NUnitASP 测试 Web 控件是一种直接的方法。 第一步,为要测试的控件声明 Tester 对象。

     lblHeader = new LabelTester("lblHeading", CurrentWebForm);

lblRep = new LabelTester("lblRepName", CurrentWebForm);

txtName = new TextBoxTester("txtUserName",CurrentWebForm);

btnReport = new ButtonTester("btnRun", CurrentWebForm);

grdData = new DataGridTester("dgData",CurrentWebForm);
接下来,调用浏览器的 GetPage 方法,该方法向页面发送请求。
     Browser.GetPage("https:///GetTrackerReportTest/GetReport.aspx">http://localhost/GetTrackerReportTest/GetReport.aspx);

现在,测试控件的所需属性

     AssertVisibility(lblHeader,true);

AssertVisibility(lblRep,true);

AssertVisibility(txtName,true);

AssertVisibility(btnReport,true);

AssertVisibility(grdData,false);
http://nunitasp.sourceforge.net/tutorial/index.html 上查找有关如何测试 Web 控件的更多详细信息

测试 HTML 控件

即使对于 HTML 控件,测试过程也是相同的。 唯一的事情是我们需要找到 HTML 控件的等效 Web 控件,并使用 HTML 控件 ID 创建 Web 控件测试器类的对象。 例如,如果要测试 HTML 输入控件,请使用 HTML 控件 ID 创建 TextBox Web 控件的对象。

示例:如果以下是要测试的 HTML 控件,

     <input type="text" id="HTMLTextBox" value="HTML Textbox Value"

那么您需要为 TextBoxTester 创建对象

      TextBoxTester txtHTMLName = new TextBoxTester("HTMLTextBox",CurrentWebForm);

创建对象后,您可以像测试 Web 控件一样测试 HTML 控件。

类似地,对于 HTML Label,创建 LabelTester 的对象,对于 HTML Table,创建对象ofDataGridTester。

     LabelTester lblHTML = new LabelTester("HTMLLabel", CurrentWebForm);

DataGridTester HTMLDGTester = new DataGridTester("HTMLTable",CurrentWebForm);
请记住,当您使用 DataGridTester 对象测试 HTML Table 时,行索引将从 -1 开始,而不是从 0 开始。 通常,在 datagrid 情况下,-1 行返回 Header 行。 所有 HTML 控件都必须包含 ID 才能进行测试。
     string[] strRow0 = {"11","12","13"};

string[] strRow1 = {"21","22","23"};

string[] strRow2 = {"31","32","33"};

DataGridTester HTMLDGTester = new DataGridTester("HTMLTable",CurrentWebForm);

AssertEquals("HTML Table Failed at Row1", strRow0, HTMLDGTester.GetRow(-1).TrimmedCells);

AssertEquals("HTML Table Failed at Row2", strRow1, HTMLDGTester.GetRow(0).TrimmedCells);

AssertEquals("HTML Table Failed at Row3", strRow2, HTMLDGTester.GetRow (1).TrimmedCells);

结论

为了使用 NUnitASP 测试 HTML 控件,您还可以使用正则表达式来查找控件 ID。 在响应文本中找到控件 ID 后,解析该语句以获取所需的值。

© . All rights reserved.