Ich arbeite an Unit Testing für mein aktuelles Projekt und stieß auf etwas Seltsames. Die .Net UnitTesting-Bibliothek verfügt über Assert.Equals und Assert.AreEqual. Die remarks für Assert.Equals sagen, Assert.AreEqual zu verwenden, um zwei Objekte zu vergleichen, gibt aber keinen Grund, warum dies über Assert.Equals zu tun ist. Kann jemand erklären, wann Sie Assert.Equals im Komponententest verwenden sollten, wenn überhaupt und den Unterschied zwischen Assert.Equals und Assert.AreEqual?Was ist die Verwendung von Assert.Equals?
Antwort
Assert.Equals
ist nur die Equals
Methode geerbt von object
. Es hat nichts mit Unit-Tests zu tun, und in der Tat, hat keinen Nutzen.
Um genauer zu sein, Assert.Equals
genau wie Object.Equals
gleich ist. Object.Equals
hat eine Verwendung.
Wenn Sie jedoch Assert.Equals
verwenden, verwirren Sie es wahrscheinlich mit Assert.AreEqual
, und Sie möchten es nicht mehr verwenden.
"nichts mit Komponententests zu tun" - gut ... aber "in der Tat, hat keinen Nutzen" ist vielleicht irreführend. –
Welchen Nutzen hat es? Instanzen der Assert-Klasse vergleichen? –
Ich würde argumentieren, dass es keine Verwendung der Assert-Klasse, die statisch ist. –
mögliche Duplikate von [Warum ist Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Equals() vorhanden?] (Http://StackOverflow.com/questions/489117/why-does-microsoft-visualstudio-testtools-unittesting- assert-equals-exist) –
Verstehst du zuerst, was Assert.Equals bedeutet oder bedeutet? es überprüft, um sicherzustellen, dass 2 'Objekte gleich sind' die '? ' macht Objects 'Nullable', wenn man beispielsweise mit' DateTime, int' herumspielt und versucht, etwas wie 'var myInt = null' zu setzen; es wird fehlschlagen aber 'var myInt setzen? = null; 'macht die Ganzzahl Nullable Dies sollte dazu führen, dass Sie Ihre eigene Frage zu beantworten – MethodMan
noch wichtiger Ich denke, dass Sie fragen sollten, wenn Sie' .Equals' vs '==' Es gibt einen Unterschied .. man überprüft ' Objekte, während der andere überprüft "Werte" – MethodMan