Assert.AddValueFormatter Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| AddValueFormatter(Func<Func<Object,String>,Func<Object,String>>) |
Registriert eine Chain-of-Responsibility-Wertformatiererfabrik. Die Factory empfängt den |
| AddValueFormatter<T>(Func<T,String>) |
Registriert einen benutzerdefinierten Formatierer, der steuert, wie Werte |
AddValueFormatter(Func<Func<Object,String>,Func<Object,String>>)
- Quelle:
- Assert.AddValueFormatter.cs
Registriert eine Chain-of-Responsibility-Wertformatiererfabrik. Die Factory empfängt den next Formatierer in der Kette und gibt einen neuen Formatierer zurück. Der zurückgegebene Formatierer sollte entweder eine Zeichenfolge für die Werte erzeugen, an die er behandelt wird, oder an die Werte delegieren next , an die er nicht verarbeitet wird.
Die Registrierung ist auf den aktuellen asynchronen Fluss zugeschnitten und wird entfernt, wenn die zurückgegebene IDisposable Folie verworfen wird.
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
Parameter
Eine Funktion, die den nächsten Formatierer in der Kette empfängt und einen Formatierer zurückgibt, der vor der Installation installiert werden soll.
Gibt zurück
Eine IDisposable , deren Entsorgung die Registrierung entfernt.
- Attribute
Ausnahmen
factory ist null.
Hinweise
Verwenden Sie diese Überladung, wenn Sie mehr als einen einzelnen Typ prüfen müssen (z. B. um ein Objekt zu rendern, das eine Markierungsschnittstelle implementiert) oder wenn Sie explizite Kontrolle über die Delegierung nextbenötigen. Für das allgemeine "Format a specific type" case prefer AddValueFormatter<T>(Func<T,String>).
factory ist der Ketten-Generator, nicht der Formatierer selbst: Er wird jedes Mal aufgerufen, wenn ein Wert gerendert wird, während die Registrierung aktiv ist (die Kette wird pro Render neu erstellt, sodass die out-of-order-Entsorgung anderer Registrierungen berücksichtigt wird), nicht nur einmal bei der Registrierung. Halten Sie es billig und nebenwirkungenfrei; Führen Sie alle kostspieligen Setups außerhalb der Factory durch und geben sie einen Formatierer zurück, der über den vorkompilierten Zustand geschlossen wird.
Gilt für:
AddValueFormatter<T>(Func<T,String>)
- Quelle:
- Assert.AddValueFormatter.cs
Registriert einen benutzerdefinierten Formatierer, der steuert, wie Werte T in strukturierten Assertionsfehlermeldungen gerendert werden. Die Registrierung ist auf den aktuellen asynchronen Fluss (gesichert von AsyncLocal<T>) festgelegt und wird entfernt, wenn die zurückgegebene IDisposable Folie verworfen wird.
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
Typparameter
- T
Der Typ, dessen gerenderte Darstellung angepasst werden soll.
Parameter
Eine Funktion, die die zu verwendende Zeichenfolgendarstellung zurückgibt oder null auf den nächsten registrierten Formatierer (oder den integrierten Renderer, wenn kein anderer Formatierer den Wert behandelt).
Gibt zurück
Eine IDisposable , deren Entsorgung die Registrierung entfernt.
- Attribute
Ausnahmen
formatter ist null.
Beispiele
[TestMethod]
public void DateTimeFailureShowsKind()
{
using var _ = Assert.AddValueFormatter<DateTime>(dt => $"{dt:O} [{dt.Kind}]");
Assert.AreEqual(DateTime.UtcNow, DateTime.Now);
}
Hinweise
Formatierer wirken sich nur darauf aus, wie Werte in Fehlermeldungen gerendert werden. Sie ändern keine Gleichheitsvergleiche, die von Assertionen wie Assert.AreEqual. Verwenden Sie zum Anpassen der Gleichheit die vorhandenen IEqualityComparer<T> Überladungen.
Registrierungen stapeln zuerst: Der zuletzt registrierte Formatierer wird zuerst konsultiert. Ein Formatierer, der Zurückstellung an den nächsten Formatierer zurückgibt null , und schließlich zum integrierten Renderer.
null Werte werden immer als "null" vom integrierten Renderer gerendert und nie an Benutzerformatierer übergeben.
Allgemeine Registrierungswebsites und deren effektiver Umfang:
- Innerhalb einer
[TestMethod]: diese Testmethode (und die zugehörigen asynchronen Fortsetzungen). -
[TestInitialize]: jeder Test in der enthaltenden Klasse. -
[ClassInitialize]: alle Tests in der enthaltenden Klasse. -
[AssemblyInitialize]: alle Tests in der enthaltenden Assembly.