Assert.AddValueFormatter 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| AddValueFormatter(Func<Func<Object,String>,Func<Object,String>>) |
註冊一個責任鏈價值格式化工廠。 工廠會接收 |
| AddValueFormatter<T>(Func<T,String>) |
註冊一個自訂格式化器,控制 的 |
AddValueFormatter(Func<Func<Object,String>,Func<Object,String>>)
註冊一個責任鏈價值格式化工廠。 工廠會接收 next 該格式化器並回傳新的格式化器;回傳的格式化器應該要麼產生它所處理的值的字串,要麼委派給 next 它不處理的值。
註冊範圍會針對當前非同步流量進行範圍,當回流 IDisposable 被處理時即移除。
[System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")]
public static IDisposable AddValueFormatter(Func<Func<object?,string>,Func<object?,string>> factory);
public static IDisposable AddValueFormatter(Func<Func<object?,string>,Func<object?,string>> factory);
[<System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")>]
static member AddValueFormatter : Func<Func<obj, string>, Func<obj, string>> -> IDisposable
static member AddValueFormatter : Func<Func<obj, string>, Func<obj, string>> -> IDisposable
Public Shared Function AddValueFormatter (factory As Func(Of Func(Of Object, String), Func(Of Object, String))) As IDisposable
參數
傳回
IDisposable其處理方式會移除車牌。
- 屬性
例外狀況
factory 是 null。
備註
當你需要檢查超過單一類型(例如渲染任何實作標記介面的物件)或需要明確控制委派到 next時,可以使用這個超載。 在常見的「格式化特定類型」情況下,偏好 AddValueFormatter<T>(Func<T,String>)。
factory 是鏈建構器,而非格式化器本身:當註冊啟動時,每次產生值時都會呼叫(每次渲染時重建鏈條,以確保其他註冊的亂序處理會被尊重),而非註冊時只執行一次。 保持便宜且無副作用;在工廠外做任何昂貴的設定,並讓它回傳一個格式化器,關閉於預先計算的狀態。
適用於
AddValueFormatter<T>(Func<T,String>)
註冊一個自訂格式化器,控制 的 T 值在結構化斷言失敗訊息中呈現方式。 註冊範圍會針對當前非同步流(由 AsyncLocal<T>支援)進行,當回流 IDisposable 被處理時移除。
[System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")]
public static IDisposable AddValueFormatter<T>(Func<T,string?> formatter);
public static IDisposable AddValueFormatter<T>(Func<T,string?> formatter);
[<System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")>]
static member AddValueFormatter : Func<'T, string> -> IDisposable
static member AddValueFormatter : Func<'T, string> -> IDisposable
Public Shared Function AddValueFormatter(Of T) (formatter As Func(Of T, String)) As IDisposable
類型參數
- T
渲染後的類型應該被客製化。
參數
傳回
IDisposable其處理方式會移除車牌。
- 屬性
例外狀況
formatter 是 null。
範例
[TestMethod]
public void DateTimeFailureShowsKind()
{
using var _ = Assert.AddValueFormatter<DateTime>(dt => $"{dt:O} [{dt.Kind}]");
Assert.AreEqual(DateTime.UtcNow, DateTime.Now);
}
備註
Formatter 僅影響失敗訊息中值的呈現方式。 它們不會改變由斷言所執行的等號比較,例如 Assert.AreEqual。 要自訂平等,請使用現有 IEqualityComparer<T> 的超載。
註冊依序堆疊為最新排序:優先諮詢最近註冊的格式化者。 格式化器回歸 null 時會讓給下一個格式化器,最終交給內建渲染器。
null 數值總是由內建渲染器渲染 "null" ,且不會傳遞給使用者格式化器。
常見登記地點及其有效範圍:
- 在
[TestMethod]:該測試方法(及其非同步延續)中。 -
[TestInitialize]:包含類別中的每個測試。 -
[ClassInitialize]: 所有包含類別中的測試。 -
[AssemblyInitialize]:包含組件內的所有測試。