Assert.AddValueFormatter メソッド

定義

オーバーロード

名前 説明
AddValueFormatter(Func<Func<Object,String>,Func<Object,String>>)

責任チェーン値フォーマッタ ファクトリを登録します。 ファクトリは、チェーン内の next フォーマッタを受け取り、新しいフォーマッタを返します。返されるフォーマッタは、処理する値の文字列を生成するか、処理しない値の next に委任する必要があります。 登録のスコープは現在の非同期フローであり、返された IDisposable が破棄されると削除されます。

AddValueFormatter<T>(Func<T,String>)

構造化アサーションエラー メッセージ内での T の値のレンダリング方法を制御するカスタム フォーマッタを登録します。 登録のスコープは現在の非同期フロー ( AsyncLocal<T> によってサポート) であり、返された IDisposable が破棄されると削除されます。

AddValueFormatter(Func<Func<Object,String>,Func<Object,String>>)

ソース:
Assert.AddValueFormatter.cs

責任チェーン値フォーマッタ ファクトリを登録します。 ファクトリは、チェーン内の next フォーマッタを受け取り、新しいフォーマッタを返します。返されるフォーマッタは、処理する値の文字列を生成するか、処理しない値の next に委任する必要があります。 登録のスコープは現在の非同期フローであり、返された IDisposable が破棄されると削除されます。

public static IDisposable AddValueFormatter(Func<Func<object?,string>,Func<object?,string>> factory);
[System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")]
public static IDisposable AddValueFormatter(Func<Func<object?,string>,Func<object?,string>> factory);
static member AddValueFormatter : Func<Func<obj, string>, Func<obj, string>> -> IDisposable
[<System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")>]
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

パラメーター

factory
Func<Func<Object,String>,Func<Object,String>>

チェーン内の次のフォーマッタを受け取り、その前にインストールするフォーマッタを返す関数。

返品

登録を破棄する IDisposable

属性

例外

factorynullです。

注釈

このオーバーロードは、複数の型を検査する必要がある場合 (マーカー インターフェイスを実装するオブジェクトをレンダリングする場合など)、または nextへの委任を明示的に制御する必要がある場合に使用します。 一般的な "特定の型の書式" の場合は、 AddValueFormatter<T>(Func<T,String>)を優先します。

factory は、フォーマッタ自体ではなくチェーン ビルダーです。登録がアクティブな間に値がレンダリングされるたびに呼び出されます (チェーンはレンダリングごとに再構築されるため、登録時に 1 回だけでなく、他の登録の順序外の破棄が受け入れられます)。 安くて副作用のない状態に保ちます。は、ファクトリの外部でコストのかかるセットアップを実行し、事前計算済みの状態を閉じるフォーマッタを返すようにします。

適用対象

AddValueFormatter<T>(Func<T,String>)

ソース:
Assert.AddValueFormatter.cs

構造化アサーションエラー メッセージ内での T の値のレンダリング方法を制御するカスタム フォーマッタを登録します。 登録のスコープは現在の非同期フロー ( AsyncLocal<T> によってサポート) であり、返された IDisposable が破棄されると削除されます。

public static IDisposable AddValueFormatter<T>(Func<T,string?> formatter);
[System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")]
public static IDisposable AddValueFormatter<T>(Func<T,string?> formatter);
static member AddValueFormatter : Func<'T, string> -> IDisposable
[<System.Diagnostics.CodeAnalysis.Experimental("MSTESTEXP", UrlFormat="https://aka.ms/mstest/diagnostics#{0}")>]
static member AddValueFormatter : Func<'T, string> -> IDisposable
Public Shared Function AddValueFormatter(Of T) (formatter As Func(Of T, String)) As IDisposable

型パラメーター

T

レンダリングされた表現をカスタマイズする必要がある型。

パラメーター

formatter
Func<T,String>

使用する文字列形式を返す関数、または次の登録済みフォーマッタ (または他のフォーマッタが値を処理しない場合は組み込みのレンダラー) にフォールスルーする null

返品

登録を破棄する IDisposable

属性

例外

formatternullです。

[TestMethod]
public void DateTimeFailureShowsKind()
{
    using var _ = Assert.AddValueFormatter<DateTime>(dt => $"{dt:O} [{dt.Kind}]");
    Assert.AreEqual(DateTime.UtcNow, DateTime.Now);
}

注釈

フォーマッタは、エラー メッセージでの値のレンダリング方法にのみ影響します。 Assert.AreEqualなどのアサーションによって実行される等価比較は変更されません。 等価性をカスタマイズするには、既存の IEqualityComparer<T> オーバーロードを使用します。

登録スタックの最新の順: 最後に登録されたフォーマッタが最初に参照されます。 nullを返すフォーマッタは、次のフォーマッタに遅延し、最終的には組み込みのレンダラーに遅延します。 null 値は、常に組み込みのレンダラーによって "null" としてレンダリングされ、ユーザー フォーマッタには渡されません。

一般的な登録サイトとその有効範囲:

  • [TestMethod]内: そのテスト メソッド (およびその非同期継続)。
  • [TestInitialize]: 包含クラス内の各テスト。
  • [ClassInitialize]: 包含クラス内のすべてのテスト。
  • [AssemblyInitialize]: 包含アセンブリ内のすべてのテスト。

適用対象