Wie kann dieser Test fehlschlagen?
[TestMethod]
public void Get_Code()
{
var expected = new List<int>();
expected.AddRange(new [] { 100, 400, 200, 900, 2300, 1900 });
var actual = new List<int>();
actual.AddRange(new [] { 100, 400, 200, 900, 2300, 1900 });
Assert.AreEqual(expected, actual);
// Assert.AreSame(expected, actual) fails
// Assert.IsTrue(expected.Equals(actual)) fails
}
c#
visual-studio-2010
unit-testing
mstest
Ray Cheng
quelle
quelle
CollectionAssert.AreEquivalent
CollectionAssert.AreEqual
dass spürbar langsamer sein kann alsAssert.IsTrue...SequenceEqual
Ich denke, das wird helfen
quelle
Wenn Sie überprüfen möchten, ob jede dieselbe Auflistung von Werten enthält, sollten Sie Folgendes verwenden:
Bearbeiten:
quelle
Ich habe die anderen Antworten in diesem Thread ausprobiert und sie haben bei mir nicht funktioniert. Ich habe Sammlungen von Objekten verglichen, in deren Eigenschaften dieselben Werte gespeichert waren, die Objekte jedoch unterschiedlich waren.
Methodenaufruf:
Vergleichsmethode:
quelle
Equals
Methode überschreiben und dasCollectionAssert
wird funktionieren.Dieser Test vergleicht eine Datumseingabe und prüft, ob es sich um ein Schaltjahr handelt. Wenn ja, werden 20 Schaltjahre vom eingegebenen Datum ausgegeben. Wenn nicht, werden die NÄCHSTEN 20 Schaltjahre ausgegeben, myTest.Testing bezieht sich auf die myTest-Instanz, die wiederum die Werte aufruft aus einer Liste namens Testing, die die erforderlichen berechneten Werte enthält. Teil einer Übung, die ich machen musste.
quelle
//Handlung
//Behaupten
quelle
Fließende Behauptungen führen tiefe Vergleiche von Arrays durch
actualArray.Should().BeEquivalentTo(expectedArray)
quelle