ValidationRule 클래스
업데이트: 2007년 11월
요청에서 유효한 HTTP 응답이 반환되는지 확인하고 응답의 내용이 예상 결과와 일치하는지 확인합니다. 이 클래스는 상속되어야 합니다.
네임스페이스: Microsoft.VisualStudio.TestTools.WebTesting
어셈블리: Microsoft.VisualStudio.QualityTools.WebTestFramework(Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)
구문
Public MustInherit Class ValidationRule
Dim instance As ValidationRule
public abstract class ValidationRule
public ref class ValidationRule abstract
public abstract class ValidationRule
설명
사용자가 작성한 유효성 검사 규칙은 이 클래스에서 파생되어야 합니다. 유효성 검사 규칙은 요청이 완료된 직후에 실행됩니다.
상속자 참고 사항:
ValidationRule에서 상속하는 경우 Validate 메서드와 RuleName 속성을 재정의해야 합니다.
예제
다음은 웹 페이지에 스크립트가 있는지 확인하는 규칙을 ValidationRule에서 상속하여 만드는 방법을 보여 주는 코드 예제입니다.
using System;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace MyValidationRule
{
public class ValidatePageContainsScript : ValidationRule
{
public override string RuleName
{
get { return "Validate Script Existence"; }
}
public override string RuleDescription
{
get { return "Validates that the page has a script."; }
}
public override void Validate(object sender, ValidationEventArgs e)
{
bool validated = false;
string foundJS ="";
string foundVBS = "";
string message = "Non-valid HTML document";
if (e.Response.HtmlDocument != null)
{ // Gets all input tags
foreach (HtmlTag tag in e.Response.HtmlDocument
.GetFilteredHtmlTags(new string[] { "script" }))
{ // Check type of script for current tag
if (tag.GetAttributeValueAsString("type") == "text/JavaScript")
foundJS = "Found JavaScript";
if (tag.GetAttributeValueAsString("type") == "text/VBScript")
foundVBS = "Found VBScript";
}
if (foundVBS.Length != 0 || foundJS.Length != 0)
{
validated = true;
message = string.Format("{0} {1}", foundJS, foundVBS);
}
else
{
message = "No scripts in current page";
}
}
e.IsValid = validated;
e.Message = message;
}
}
}
Imports System
Imports Microsoft.VisualStudio.TestTools.WebTesting
Namespace MyValidationRule
Public Class ValidatePageContainsScript
Inherits ValidationRule
Public Overrides ReadOnly Property RuleName() As String
Get
Return "Validate Script Existence"
End Get
End Property
Public Overrides ReadOnly Property RuleDescription() As String
Get
Return "Validates that the page has a script"
End Get
End Property
Public Overrides Sub Validate(ByVal sender As Object, _
ByVal e As ValidationEventArgs)
Dim validated As Boolean = False
Dim foundJS As String = String.Empty
Dim foundVBS As String = String.Empty
Dim message As String = "Non-valid HTML document"
If Not e.Response.HtmlDocument Is Nothing Then
' Get all input tags
Dim tag As HtmlTag
For Each tag In e.Response.HtmlDocument. _
GetFilteredHtmlTags(New String() {"script"})
' Check type of script for current tag
If tag.GetAttributeValueAsString("type") = "text/JavaScript" _
Then
foundJS = "Found JavaScript"
End If
If tag.GetAttributeValueAsString("type") = "text/VBScript" _
Then
foundVBS = "Found VBScript"
End If
Next
If Not foundVBS.Length = 0 Or Not foundJS.Length = 0 Then
validated = True
message = String.Format("{0} {1}", foundJS, foundVBS)
Else
message = "No scripts in current page."
End If
End If
e.IsValid = validated
e.Message = message
End Sub
End Class
End Namespace
상속 계층 구조
System.Object
Microsoft.VisualStudio.TestTools.WebTesting.ValidationRule
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateFormField
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateResponseUrl
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleFindText
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleRequestTime
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleRequiredAttributeValue
Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleRequiredTag
스레드로부터의 안전성
이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
참고 항목
참조
Microsoft.VisualStudio.TestTools.WebTesting 네임스페이스