Partilhar via


Classe ValidationRule

Verifica que solicitações retornam respostas HTTP válidas e que o conteúdo da resposta corresponde os resultados esperados.Essa classe deve ser herdada.

Hierarquia de herança

System.Object
  Microsoft.VisualStudio.TestTools.WebTesting.ValidationRule
    Mais...

Namespace:  Microsoft.VisualStudio.TestTools.WebTesting
Assembly:  Microsoft.VisualStudio.QualityTools.WebTestFramework (em Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)

Sintaxe

'Declaração
Public MustInherit Class ValidationRule
public abstract class ValidationRule
public ref class ValidationRule abstract
[<AbstractClass>]
type ValidationRule =  class end
public abstract class ValidationRule

O tipo ValidationRule expõe os membros a seguir.

Construtores

  Nome Descrição
Método protegido ValidationRule Essa classe deve ser herdada.Ele não pode ser instanciado.

Superior

Propriedades

  Nome Descrição
Propriedade pública RuleDescription Obsoleta. Obtém a descrição exibida na interface do usuário quando uma regra é selecionada.
Propriedade pública RuleName Obsoleta. Quando substituído em uma classe derivada, obtém o nome exibido na interface do usuário quando uma regra é selecionada ou mostrada no editor.

Superior

Métodos

  Nome Descrição
Método público Equals Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegido Finalize Permite que um objeto tentar liberar recursos e realizar outras operações de limpeza antes de ser recuperados pela coleta de lixo. (Herdado de Object.)
Método público GetHashCode Serve como uma função de hash para um tipo específico. (Herdado de Object.)
Método público GetType Obtém Type da instância atual. (Herdado de Object.)
Método protegido MemberwiseClone Cria uma cópia superficial de Objectatual. (Herdado de Object.)
Método público ToString Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.)
Método público Validate Quando substituído em uma classe derivada, isso valida a solicitação e a resposta.

Superior

Comentários

As regras de validação escritas pelo usuário precisam derivar dessa classe.As regras de validação são executadas apenas depois que a solicitação for concluída.

Observações para herdeiros

Quando você herda de ValidationRule, você deve substituir o Validate método e RuleName propriedade.

Exemplos

O exemplo de código a seguir mostra como herdar de ValidationRule para criar uma regra que valida a existência de scripts na página da 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

Acesso thread-safe

Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.VisualStudio.TestTools.WebTesting

Outros recursos

Como: adiciona uma regra de validação para um teste de desempenho de Web

Como: criar uma regra de validação personalizada para um teste de desempenho da Web

Hierarquia de herança

System.Object
  Microsoft.VisualStudio.TestTools.WebTesting.ValidationRule
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointValidationRuleFindText2
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointValidationRuleResponseURL2
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateFormField
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateHtmlSelectTag
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateHtmlTagInnerText
    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
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleResponseTimeGoal