Condividi tramite


Classe ValidationRule

Aggiornamento: novembre 2007

Verifica che le richieste restituiscano risposte HTTP valide e che il contenuto della risposta corrisponda ai risultati previsti. La classe deve essere ereditata.

Spazio dei nomi:  Microsoft.VisualStudio.TestTools.WebTesting
Assembly:  Microsoft.VisualStudio.QualityTools.WebTestFramework (in Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)

Sintassi

Public MustInherit Class ValidationRule

Dim instance As ValidationRule
public abstract class ValidationRule
public ref class ValidationRule abstract
public abstract class ValidationRule

Note

È necessario che le regole di convalida scritte dall'utente derivino da questa classe. Le regole di convalida vengono eseguite subito dopo il completamento della richiesta.

Note per gli eredi:

Quando si eredita dall'oggetto ValidationRule, è necessario eseguire l'override del metodo Validate e della proprietà RuleName.

Esempi

Nell'esempio di codice seguente viene illustrato come ereditare dall'oggetto ValidationRule per creare una regola che verifichi l'esistenza di script sulla pagina Web.

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

Gerarchia di ereditarietà

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

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Membri ValidationRule

Spazio dei nomi Microsoft.VisualStudio.TestTools.WebTesting

Altre risorse

Procedura: aggiungere una regola di convalida a un test Web

Procedura: creare una regola di convalida personalizzata