2013-04-01 15 views
11

Pracuję nad testowaniem jednostek dla mojego obecnego projektu i natknąłem się na coś dziwnego. Biblioteka .Net UnitTesting zawiera zarówno Assert.Equals, jak i Assert.AreEqual. Wersja remarks dla Assert.Equals mówi o użyciu Assert.AreEqual w celu porównania dwóch obiektów, ale nie podaje powodów, dla których warto to zrobić w Assert.Equals. Czy ktoś może wyjaśnić, kiedy powinieneś użyć Assert.Equals w testowaniu jednostkowym, jeśli w ogóle, a różnica między Assert.Equals i Assert.AreEqual?Co to jest użycie Assert.Equals?

+1

możliwe duplikat [Dlaczego Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Equals() istnieje?] (Http://stackoverflow.com/questions/489117/why-does-microsoft-visualstudio-testtools-unittesting- assert-equals-exist) –

+1

Czy w pierwszej kolejności rozumiesz, co oznacza 'Assert.Equals' lub co oznacza ...? sprawdza, czy 2 obiekty są równe ''? ' sprawia, że ​​obiekty 'Nullable', które grają na przykład z' DateTime, int' i próbują ustawić coś takiego jak 'var myInt = null'; to się nie uda, ale ustawienie 'var myInt? = null; 'sprawi, że liczba całkowita będzie nullable to powinno doprowadzić do odpowiedzi na własne pytanie – MethodMan

+0

jeszcze ważniejsze Myślę, że powinieneś pytać kiedy użyć' .Equals' kontra '==' jest różnica .. jeden sprawdza ' obiekty' podczas gdy druga sprawdza 'wartości' – MethodMan

Odpowiedz

31

Assert.Equals to tylko metoda Equals odziedziczona po object. Nie ma to nic wspólnego z testowaniem jednostkowym, a właściwie nie ma sensu.


Aby być bardziej precyzyjnym, Assert.Equals jest dokładnie taka sama jak Object.Equals. Object.Equals ma zastosowanie.

Jeśli jednak używasz Assert.Equals, prawdopodobnie mylisz to z Assert.AreEqual i chcesz przestać z niego korzystać.

+3

"nic wspólnego z testowaniem jednostkowym" - w porządku ... ale "w rzeczywistości nie ma zastosowania" może być mylące. –

+2

Jakie ma to zastosowanie? Porównywanie instancji klasy "Assert"? –

+0

Twierdzę, że nie ma ona zastosowania w klasie Assert, która jest statyczna. –