ValidationRule クラス
要求が有効な HTTP 応答を返すこと、およびその応答の内容が予測された結果と一致することを検証します。 このクラスは継承できません。
継承階層
System.Object
Microsoft.VisualStudio.TestTools.WebTesting.ValidationRule
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
名前空間: Microsoft.VisualStudio.TestTools.WebTesting
アセンブリ: Microsoft.VisualStudio.QualityTools.WebTestFramework (Microsoft.VisualStudio.QualityTools.WebTestFramework.dll 内)
構文
'宣言
Public MustInherit Class ValidationRule
public abstract class ValidationRule
public ref class ValidationRule abstract
[<AbstractClass>]
type ValidationRule = class end
public abstract class ValidationRule
ValidationRule 型で公開されるメンバーは以下のとおりです。
コンストラクター
名前 | 説明 | |
---|---|---|
ValidationRule | このクラスは継承できません。インスタンス化できません。 |
このページのトップへ
プロパティ
名前 | 説明 | |
---|---|---|
RuleDescription | 互換性のために残されています。 規則が選択されている場合に、ユーザー インターフェイスに表示される説明を取得します。 | |
RuleName | 互換性のために残されています。 派生クラスでオーバーライドされた場合に、規則を選択したときにユーザー インターフェイスに表示される名前、またはエディターに表示される名前を取得します。 |
このページのトップへ
メソッド
名前 | 説明 | |
---|---|---|
Equals | 指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。) | |
Finalize | オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。 (Object から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) | |
ToString | 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。) | |
Validate | 派生クラスでオーバーライドされた場合は、これによって、要求と応答の両方が検証されます。 |
このページのトップへ
解説
ユーザー記述の検証規則は、このクラスから派生する必要があります。 検証規則は、要求が完了するとすぐに実行されます。
継承時の注意
ValidationRule から継承する場合は、Validate メソッドと RuleName プロパティをオーバーライドする必要があります。
例
ValidationRule から継承して、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
スレッド セーフ
この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
参照
参照
Microsoft.VisualStudio.TestTools.WebTesting 名前空間