MemberConditionAttribute 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
public sealed class MemberConditionAttribute : Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
[System.Runtime.CompilerServices.Nullable(0)]
public sealed class MemberConditionAttribute : Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
type MemberConditionAttribute = class
inherit ConditionBaseAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
[<System.Runtime.CompilerServices.Nullable(0)>]
type MemberConditionAttribute = class
inherit ConditionBaseAttribute
Public NotInheritable Class MemberConditionAttribute
Inherits ConditionBaseAttribute
- 繼承
- 屬性
備註
當一個屬性提供多個成員名稱時,其值會與邏輯 AND 結合:該屬性IsConditionMet只有在每個被參考成員都值為 true時才為 true 。
每個 MemberConditionAttribute 實例都形成獨立 GroupName的 ,因此在同一目標上堆疊多個 MemberConditionAttribute 宣告會與邏輯 AND 結合,與其他測試框架的典型 [ConditionalFact] 使用模式相符。
若無法找到該參考成員作為 publicstaticBoolean 屬性、欄位或無參數方法,或(對於方法)需要參數 IsConditionMet ,則計算會 InvalidOperationException拋出 。 這會以測試錯誤的形式出現,而非靜默跳過,避免錯字和重構誤造成測試失效。
這個屬性不是遺傳的。 套用到基底類別不會影響衍生類別。
[TestMethod]
[MemberCondition(typeof(Environment), nameof(Environment.Is64BitProcess))]
public void Only_Runs_On_64Bit() { }
[TestMethod]
[MemberCondition(typeof(PlatformDetection),
nameof(PlatformDetection.IsNotBrowser),
nameof(PlatformDetection.IsThreadingSupported))]
public void Requires_Threading_And_Not_Browser() { }
[TestMethod]
[MemberCondition(ConditionMode.Exclude, typeof(PlatformDetection), nameof(PlatformDetection.IsMonoRuntime))]
public void Does_Not_Run_On_Mono() { }
建構函式
| 名稱 | Description |
|---|---|
| MemberConditionAttribute(ConditionMode, Type, String, String[]) |
初始化 MemberConditionAttribute 類別的新執行個體。 |
| MemberConditionAttribute(ConditionMode, Type, String) |
初始化 MemberConditionAttribute 類別的新執行個體。 |
| MemberConditionAttribute(Type, String, String[]) |
初始化一個新的類別實例 MemberConditionAttribute ,並以 Include 語意為基礎:測試僅在每個被參考成員都評估為 |
| MemberConditionAttribute(Type, String) |
以語意初始化該類別Include的新實例MemberConditionAttribute:測試僅在被參考成員評估為 |
屬性
| 名稱 | Description |
|---|---|
| ConditionMemberNames |
取得該條件評估時ConditionType成員 |
| ConditionType |
取得用來宣告 |
| GroupName |
會獲得這個屬性的群組名稱。 當多個繼承 ConditionBaseAttribute 屬性存在時,這點尤為重要。 IsConditionMet同一群組中的屬性值會被「或」合併。 而不同群組的價值則是「AND」合而為一。 換句話說,如果任何一個群的所有值都為 IsConditionMet 假,該檢定將被忽略。 |
| IgnoreMessage |
會收到或設定忽略訊息,說明忽略測試方法或測試類別的原因。 (繼承來源 ConditionBaseAttribute) |
| IsConditionMet |
獲得一個表示條件是否被滿足的值。 這個屬性的實作不應該讀取該 Mode 屬性。 |
| Mode |
會進入狀態模式。 (繼承來源 ConditionBaseAttribute) |