Sprache

Assert.AreEquivalent Methode

Definition

Überlädt

Name Beschreibung
AreEquivalent<T>(ReadOnlyMemory<T>, ReadOnlyMemory<T>, Boolean, String, String, String)

Testet, ob zwei Speicherbereiche strukturell gleichwertig sind (Deep, order-sensitive element comparison).

AreEquivalent<T>(Span<T>, Span<T>, Boolean, String, String, String)

Testet, ob zwei Spannen strukturell gleichwertig sind (deep, order-sensitive element comparison).

AreEquivalent<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, Boolean, String, String, String)

Testet, ob zwei Spannen strukturell gleichwertig sind (deep, order-sensitive element comparison).

AreEquivalent<T>(Memory<T>, Memory<T>, Boolean, String, String, String)

Testet, ob zwei Speicherbereiche strukturell gleichwertig sind (Deep, order-sensitive element comparison).

AreEquivalent<T>(T, T, Boolean, String, String, String)

Testet, ob zwei Objektdiagramme strukturell gleichwertig sind (tiefe Gleichheit) und löst eine Ausnahme aus, wenn sie nicht vorhanden sind.

AreEquivalent<T>(Span<T>, Span<T>, String, String, String)

Testet, ob zwei Spannen strukturell gleichwertig sind (deep, order-sensitive element comparison).

AreEquivalent<T>(Memory<T>, Memory<T>, String, String, String)

Testet, ob zwei Speicherbereiche strukturell gleichwertig sind (Deep, order-sensitive element comparison).

AreEquivalent<T>(T, T, String, String, String)

Testet, ob zwei Objektdiagramme strukturell gleichwertig sind (tiefe Gleichheit) und löst eine Ausnahme aus, wenn sie nicht vorhanden sind.

AreEquivalent<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, String, String, String)

Testet, ob zwei Spannen strukturell gleichwertig sind (deep, order-sensitive element comparison).

AreEquivalent<T>(ReadOnlyMemory<T>, ReadOnlyMemory<T>, String, String, String)

Testet, ob zwei Speicherbereiche strukturell gleichwertig sind (Deep, order-sensitive element comparison).

AreEquivalent<T>(ReadOnlyMemory<T>, ReadOnlyMemory<T>, Boolean, String, String, String)

Testet, ob zwei Speicherbereiche strukturell gleichwertig sind (Deep, order-sensitive element comparison).

public static void AreEquivalent<T>(ReadOnlyMemory<T> expected, ReadOnlyMemory<T> actual, bool strict, string? message = "", string expectedExpression = "", string actualExpression = "");
static member AreEquivalent : ReadOnlyMemory<'T> * ReadOnlyMemory<'T> * bool * string * string * string -> unit
Public Shared Sub AreEquivalent(Of T) (expected As ReadOnlyMemory(Of T), actual As ReadOnlyMemory(Of T), strict As Boolean, Optional message As String = "", Optional expectedExpression As String = "", Optional actualExpression As String = "")

Typparameter

T

Der Elementtyp der Speicherbereiche.

Parameter

expected
ReadOnlyMemory<T>

Der Arbeitsspeicher, den der Test erwartet.

actual
ReadOnlyMemory<T>

Der vom Testcode erzeugte Arbeitsspeicher.

strict
Boolean

Wenn trueder Vergleich im strikten Modus ausgeführt wird.

message
String

Die Meldung, die in die Ausnahme eingeschlossen werden soll, wenn die Assertion fehlschlägt.

expectedExpression
String

Der syntaktische Ausdruck, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

actualExpression
String

Der syntaktische Ausdruck des tatsächlichen Ausdrucks, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

Gilt für:

AreEquivalent<T>(Span<T>, Span<T>, Boolean, String, String, String)

Testet, ob zwei Spannen strukturell gleichwertig sind (deep, order-sensitive element comparison).

public static void AreEquivalent<T>(Span<T> expected, Span<T> actual, bool strict, string? message = "", string expectedExpression = "", string actualExpression = "");
static member AreEquivalent : Span<'T> * Span<'T> * bool * string * string * string -> unit
Public Shared Sub AreEquivalent(Of T) (expected As Span(Of T), actual As Span(Of T), strict As Boolean, Optional message As String = "", Optional expectedExpression As String = "", Optional actualExpression As String = "")

Typparameter

T

Der Elementtyp der Spannen.

Parameter

expected
Span<T>

Die Spanne des Tests erwartet.

actual
Span<T>

Die spanne, die vom code under test erstellt wurde.

strict
Boolean

Wenn trueder Vergleich im strikten Modus ausgeführt wird.

message
String

Die Meldung, die in die Ausnahme eingeschlossen werden soll, wenn die Assertion fehlschlägt.

expectedExpression
String

Der syntaktische Ausdruck, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

actualExpression
String

Der syntaktische Ausdruck des tatsächlichen Ausdrucks, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

Gilt für:

AreEquivalent<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, Boolean, String, String, String)

Testet, ob zwei Spannen strukturell gleichwertig sind (deep, order-sensitive element comparison).

public static void AreEquivalent<T>(ReadOnlySpan<T> expected, ReadOnlySpan<T> actual, bool strict, string? message = "", string expectedExpression = "", string actualExpression = "");
static member AreEquivalent : ReadOnlySpan<'T> * ReadOnlySpan<'T> * bool * string * string * string -> unit
Public Shared Sub AreEquivalent(Of T) (expected As ReadOnlySpan(Of T), actual As ReadOnlySpan(Of T), strict As Boolean, Optional message As String = "", Optional expectedExpression As String = "", Optional actualExpression As String = "")

Typparameter

T

Der Elementtyp der Spannen.

Parameter

expected
ReadOnlySpan<T>

Die Spanne des Tests erwartet.

actual
ReadOnlySpan<T>

Die spanne, die vom code under test erstellt wurde.

strict
Boolean

Wenn trueder Vergleich im strikten Modus ausgeführt wird.

message
String

Die Meldung, die in die Ausnahme eingeschlossen werden soll, wenn die Assertion fehlschlägt.

expectedExpression
String

Der syntaktische Ausdruck, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

actualExpression
String

Der syntaktische Ausdruck des tatsächlichen Ausdrucks, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

Gilt für:

AreEquivalent<T>(Memory<T>, Memory<T>, Boolean, String, String, String)

Testet, ob zwei Speicherbereiche strukturell gleichwertig sind (Deep, order-sensitive element comparison).

public static void AreEquivalent<T>(Memory<T> expected, Memory<T> actual, bool strict, string? message = "", string expectedExpression = "", string actualExpression = "");
static member AreEquivalent : Memory<'T> * Memory<'T> * bool * string * string * string -> unit
Public Shared Sub AreEquivalent(Of T) (expected As Memory(Of T), actual As Memory(Of T), strict As Boolean, Optional message As String = "", Optional expectedExpression As String = "", Optional actualExpression As String = "")

Typparameter

T

Der Elementtyp der Speicherbereiche.

Parameter

expected
Memory<T>

Der Arbeitsspeicher, den der Test erwartet.

actual
Memory<T>

Der vom Testcode erzeugte Arbeitsspeicher.

strict
Boolean

Wenn trueder Vergleich im strikten Modus ausgeführt wird.

message
String

Die Meldung, die in die Ausnahme eingeschlossen werden soll, wenn die Assertion fehlschlägt.

expectedExpression
String

Der syntaktische Ausdruck, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

actualExpression
String

Der syntaktische Ausdruck des tatsächlichen Ausdrucks, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

Gilt für:

AreEquivalent<T>(T, T, Boolean, String, String, String)

Quelle:
Assert.AreEquivalent.cs

Testet, ob zwei Objektdiagramme strukturell gleichwertig sind (tiefe Gleichheit) und löst eine Ausnahme aus, wenn sie nicht vorhanden sind.

public static void AreEquivalent<T>(T? expected, T? actual, bool strict, string? message = "", string expectedExpression = "", string actualExpression = "");
static member AreEquivalent : 'T * 'T * bool * string * string * string -> unit
Public Shared Sub AreEquivalent(Of T) (expected As T, actual As T, strict As Boolean, Optional message As String = "", Optional expectedExpression As String = "", Optional actualExpression As String = "")

Typparameter

T

Der Typ der zu vergleichenden Werte.

Parameter

expected
T

Der erste zu vergleichende Wert. Dies ist der Wert, den der Test erwartet.

actual
T

Der zweite zu vergleichende Wert. Dies ist der Vom Testcode erzeugte Wert.

strict
Boolean

Wenn trueder Vergleich fehlschlägt, wenn actual öffentliche Eigenschaften oder Felder deklariert werden, die nicht für expectedden Laufzeittyp vorhanden sind, oder wenn zusätzliche Wörterbuchschlüssel vorhanden actualsind. Wenn false (standard) werden zusätzliche Member und Wörterbuchschlüssel actual ignoriert. Wenn die Laufzeittypen identisch expected sind, actual hat dieses Flag keine Auswirkungen auf den Vergleich von öffentlichen Membern, aber es lehnt beim Vergleichen von Wörterbüchern weiterhin zusätzliche Wörterbuchschlüssel ab actual .

message
String

Die Nachricht, die in die Ausnahme eingeschlossen werden soll, wenn actual sie nicht gleichwertig expectedist. Die Meldung wird in Testergebnissen angezeigt.

expectedExpression
String

Der syntaktische Ausdruck, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

actualExpression
String

Der syntaktische Ausdruck des tatsächlichen Ausdrucks, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

Ausnahmen

Ausgelöst, wenn expected und actual nicht strukturell gleichwertig sind.

Gilt für:

AreEquivalent<T>(Span<T>, Span<T>, String, String, String)

Testet, ob zwei Spannen strukturell gleichwertig sind (deep, order-sensitive element comparison).

public static void AreEquivalent<T>(Span<T> expected, Span<T> actual, string? message = "", string expectedExpression = "", string actualExpression = "");
static member AreEquivalent : Span<'T> * Span<'T> * string * string * string -> unit
Public Shared Sub AreEquivalent(Of T) (expected As Span(Of T), actual As Span(Of T), Optional message As String = "", Optional expectedExpression As String = "", Optional actualExpression As String = "")

Typparameter

T

Der Elementtyp der Spannen.

Parameter

expected
Span<T>

Die Spanne des Tests erwartet.

actual
Span<T>

Die spanne, die vom code under test erstellt wurde.

message
String

Die Meldung, die in die Ausnahme eingeschlossen werden soll, wenn die Assertion fehlschlägt.

expectedExpression
String

Der syntaktische Ausdruck, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

actualExpression
String

Der syntaktische Ausdruck des tatsächlichen Ausdrucks, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

Gilt für:

AreEquivalent<T>(Memory<T>, Memory<T>, String, String, String)

Testet, ob zwei Speicherbereiche strukturell gleichwertig sind (Deep, order-sensitive element comparison).

public static void AreEquivalent<T>(Memory<T> expected, Memory<T> actual, string? message = "", string expectedExpression = "", string actualExpression = "");
static member AreEquivalent : Memory<'T> * Memory<'T> * string * string * string -> unit
Public Shared Sub AreEquivalent(Of T) (expected As Memory(Of T), actual As Memory(Of T), Optional message As String = "", Optional expectedExpression As String = "", Optional actualExpression As String = "")

Typparameter

T

Der Elementtyp der Speicherbereiche.

Parameter

expected
Memory<T>

Der Arbeitsspeicher, den der Test erwartet.

actual
Memory<T>

Der vom Testcode erzeugte Arbeitsspeicher.

message
String

Die Meldung, die in die Ausnahme eingeschlossen werden soll, wenn die Assertion fehlschlägt.

expectedExpression
String

Der syntaktische Ausdruck, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

actualExpression
String

Der syntaktische Ausdruck des tatsächlichen Ausdrucks, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

Gilt für:

AreEquivalent<T>(T, T, String, String, String)

Quelle:
Assert.AreEquivalent.cs

Testet, ob zwei Objektdiagramme strukturell gleichwertig sind (tiefe Gleichheit) und löst eine Ausnahme aus, wenn sie nicht vorhanden sind.

public static void AreEquivalent<T>(T? expected, T? actual, string? message = "", string expectedExpression = "", string actualExpression = "");
static member AreEquivalent : 'T * 'T * string * string * string -> unit
Public Shared Sub AreEquivalent(Of T) (expected As T, actual As T, Optional message As String = "", Optional expectedExpression As String = "", Optional actualExpression As String = "")

Typparameter

T

Der Typ der zu vergleichenden Werte.

Parameter

expected
T

Der erste zu vergleichende Wert. Dies ist der Wert, den der Test erwartet.

actual
T

Der zweite zu vergleichende Wert. Dies ist der Vom Testcode erzeugte Wert.

message
String

Die Nachricht, die in die Ausnahme eingeschlossen werden soll, wenn actual sie nicht gleichwertig expectedist. Die Meldung wird in Testergebnissen angezeigt.

expectedExpression
String

Der syntaktische Ausdruck, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

actualExpression
String

Der syntaktische Ausdruck des tatsächlichen Ausdrucks, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

Ausnahmen

Ausgelöst, wenn expected und actual nicht strukturell gleichwertig sind.

Hinweise

Diese Assertion führt einen tiefen, ordersensitiven strukturellen Vergleich von zwei Objektdiagrammen durch. Sie unterscheidet sich von AreEquivalent(ICollection, ICollection)der, die nur die Äquivalenz auf oberster Ebene überprüft, ohne die Elementreihenfolge zu berücksichtigen.

Die Vergleichsregeln sind:

  • Referenzgleiche Werte (einschließlich beide null) werden als gleichwertig betrachtet.
  • Primitive ähnliche Typen (Numerische, Boolean, , Char, StringEnumerationen, DateTime, , , DateTimeOffset, TimeSpan, , GuidUri, Type, ) Versionwerden mit Equals(Object)verglichen. Auf Zielframeworks, die sie liefern, DateOnly, , TimeOnlyHalf, Int128und UInt128 werden auch als grundtypartig behandelt.
  • Wenn der statische Typ (Kompilierungszeit) eines Werts IEquatable<T> für sich selbst implementiert wird, Equals(T) wird er verwendet und die Rekursion an diesem Punkt beendet. Einfache Equals(Object) Außerkraftsetzungen werden ignoriert – der Comparer rekursiert immer in Member für diese.
  • Wörterbücher (IDictionary, IDictionary<TKey, TValue>oder IReadOnlyDictionary<TKey,TValue>) werden nach Schlüsselsatz verglichen, wobei Werte rekursiv verglichen werden. Nachschlagevorgänge werden über das Quellwörterbuch weitergeleitet, damit die IEqualityComparer<T> Schlüssel beibehalten werden.
  • Andere Enumerationen (ohne String) werden in der Iterationsreihenfolge mit element-nach-Element verglichen. Der Vergleich ist geordnet vertraulich; wenn die Reihenfolge irrelevant ist, verwenden Sie AreEquivalent(ICollection, ICollection) die Sammlung selbst.
  • Andere Verweistypen werden durch Rekursieren in alle öffentlichen Instanzeigenschaften (mit einem öffentlichen Getter und ohne Indexparameter) und öffentlichen Instanzfeldern verglichen. Statische, nicht öffentliche und indizierte Member werden ignoriert.
  • Referenzzyklen werden nachverfolgt und höchstens pro (erwartetes, tatsächliches) Paar durchlaufen. Derselbe Mechanismus erzwingt die Diagrammtopologie: Wenn derselbe Verweis auf einer Seite mit unterschiedlichen Verweisen auf der anderen Seite gekoppelt ist, schlägt die Assertion fehl.
  • Wenn ein benutzerdefinierter Equals(T)Member-Getter oder ein Wörterbuchzugriff (TryGetValue, ContainsKeyoder eine Enumeration) ausgelöst wird, während er ausgewertet wird, schlägt die Assertion mit einer Meldung fehl, die den Ausnahmetyp und die Meldung beschreibt.
  • Vergleichsstopps nach einer begrenzten Rekursionstiefe, um ungewöhnlich tiefe Objektdiagramme zu vermeiden StackOverflowException , und meldet diese Bedingung als Assertionsfehler.

Gilt für:

AreEquivalent<T>(ReadOnlySpan<T>, ReadOnlySpan<T>, String, String, String)

Testet, ob zwei Spannen strukturell gleichwertig sind (deep, order-sensitive element comparison).

public static void AreEquivalent<T>(ReadOnlySpan<T> expected, ReadOnlySpan<T> actual, string? message = "", string expectedExpression = "", string actualExpression = "");
static member AreEquivalent : ReadOnlySpan<'T> * ReadOnlySpan<'T> * string * string * string -> unit
Public Shared Sub AreEquivalent(Of T) (expected As ReadOnlySpan(Of T), actual As ReadOnlySpan(Of T), Optional message As String = "", Optional expectedExpression As String = "", Optional actualExpression As String = "")

Typparameter

T

Der Elementtyp der Spannen.

Parameter

expected
ReadOnlySpan<T>

Die Spanne des Tests erwartet.

actual
ReadOnlySpan<T>

Die spanne, die vom code under test erstellt wurde.

message
String

Die Meldung, die in die Ausnahme eingeschlossen werden soll, wenn die Assertion fehlschlägt.

expectedExpression
String

Der syntaktische Ausdruck, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

actualExpression
String

Der syntaktische Ausdruck des tatsächlichen Ausdrucks, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

Gilt für:

AreEquivalent<T>(ReadOnlyMemory<T>, ReadOnlyMemory<T>, String, String, String)

Testet, ob zwei Speicherbereiche strukturell gleichwertig sind (Deep, order-sensitive element comparison).

public static void AreEquivalent<T>(ReadOnlyMemory<T> expected, ReadOnlyMemory<T> actual, string? message = "", string expectedExpression = "", string actualExpression = "");
static member AreEquivalent : ReadOnlyMemory<'T> * ReadOnlyMemory<'T> * string * string * string -> unit
Public Shared Sub AreEquivalent(Of T) (expected As ReadOnlyMemory(Of T), actual As ReadOnlyMemory(Of T), Optional message As String = "", Optional expectedExpression As String = "", Optional actualExpression As String = "")

Typparameter

T

Der Elementtyp der Speicherbereiche.

Parameter

expected
ReadOnlyMemory<T>

Der Arbeitsspeicher, den der Test erwartet.

actual
ReadOnlyMemory<T>

Der vom Testcode erzeugte Arbeitsspeicher.

message
String

Die Meldung, die in die Ausnahme eingeschlossen werden soll, wenn die Assertion fehlschlägt.

expectedExpression
String

Der syntaktische Ausdruck, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

actualExpression
String

Der syntaktische Ausdruck des tatsächlichen Ausdrucks, der vom Compiler über den Aufruferargumentausdruck angegeben wird. Benutzer sollten keinen Wert für diesen Parameter übergeben.

Gilt für: