Assert.AddValueFormatter Metodo

Definizione

Overload

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

Registra una factory concatenatore di valori di responsabilità. La factory riceve il next formattatore nella catena e restituisce un nuovo formattatore. Il formattatore restituito deve produrre una stringa per i valori gestiti o delegare a per i valori a next cui non gestisce. La registrazione ha come ambito il flusso asincrono corrente e viene rimossa quando l'oggetto restituito IDisposable viene eliminato.

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

Registra un formattatore personalizzato che controlla la modalità di rendering dei valori di all'interno di messaggi di errore di T asserzione strutturata. La registrazione ha come ambito il flusso asincrono corrente (supportato da AsyncLocal<T>) e viene rimossa quando viene eliminato il restituito IDisposable .

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

Origine:
Assert.AddValueFormatter.cs

Registra una factory concatenatore di valori di responsabilità. La factory riceve il next formattatore nella catena e restituisce un nuovo formattatore. Il formattatore restituito deve produrre una stringa per i valori gestiti o delegare a per i valori a next cui non gestisce. La registrazione ha come ambito il flusso asincrono corrente e viene rimossa quando l'oggetto restituito IDisposable viene eliminato.

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

Parametri

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

Funzione che riceve il formattatore successivo nella catena e restituisce un formattatore da installare in anticipo.

Valori restituiti

Oggetto IDisposable la cui eliminazione rimuove la registrazione.

Attributi

Eccezioni

factory è null.

Commenti

Usare questo overload quando è necessario esaminare più di un singolo tipo (ad esempio per eseguire il rendering di qualsiasi oggetto che implementa un'interfaccia di marcatore) o quando è necessario un controllo esplicito sulla delega a next. Per il caso comune "formattare un tipo specifico" preferisce AddValueFormatter<T>(Func<T,String>).

factory è il generatore di catena, non il formattatore stesso: viene richiamato ogni volta che viene eseguito il rendering di un valore mentre la registrazione è attiva (la catena viene ricompilata per rendering in modo che lo smaltimento non ordinato di altre registrazioni venga rispettato), non solo una volta al momento della registrazione. Tenerlo a buon mercato e effetto collaterale libero; eseguire qualsiasi configurazione costosa all'esterno della factory e fare in modo che restituisca un formattatore che si chiude sullo stato precomputto.

Si applica a

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

Origine:
Assert.AddValueFormatter.cs

Registra un formattatore personalizzato che controlla la modalità di rendering dei valori di all'interno di messaggi di errore di T asserzione strutturata. La registrazione ha come ambito il flusso asincrono corrente (supportato da AsyncLocal<T>) e viene rimossa quando viene eliminato il restituito 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

Parametri di tipo

T

Tipo la cui rappresentazione sottoposta a rendering deve essere personalizzata.

Parametri

formatter
Func<T,String>

Funzione che restituisce la rappresentazione di stringa da usare o null per passare al formattatore registrato successivo (o al renderer predefinito quando nessun altro formattatore gestisce il valore).

Valori restituiti

Oggetto IDisposable la cui eliminazione rimuove la registrazione.

Attributi

Eccezioni

formatter è null.

Esempio

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

Commenti

I formattatori influiscono solo sulla modalità di rendering dei valori nei messaggi di errore. Non modificano i confronti di uguaglianza eseguiti dalle asserzioni, Assert.AreEqualad esempio . Per personalizzare l'uguaglianza, usare gli overload esistenti IEqualityComparer<T> .

Stack di registrazioni più recente: il formattatore registrato più di recente viene consultato per primo. Un formattatore che restituisce null defers al formattatore successivo e infine al renderer predefinito. null i valori vengono sempre visualizzati come "null" dal renderer predefinito e non vengono mai passati ai formattatori utente.

Siti di registrazione comuni e ambito effettivo:

  • All'interno di un oggetto [TestMethod]: metodo di test (e delle relative continuazioni asincrone).
  • [TestInitialize]: ogni test nella classe contenitore.
  • [ClassInitialize]: tutti i test nella classe contenitore.
  • [AssemblyInitialize]: tutti i test nell'assembly contenitore.

Si applica a