dotnetomaniak.pl - Artykuły z tagiem Equals

W ramach testów jednostkowych może być potrzebne porównywanie wartości obiektów zamiast ich referencji. W dzisiejszym artykule poruszę temat jak porównywać obiekty w testach jednostkowych, jeżeli nie została przesłonięta metoda Equals. Proponowane rozwiązania nie będą wiązały się z dodaniem logiki wymaganej przez testy jednostkowe do klas domenowych. Na początek w ramach wprowadzenia do tematu kilka słów o typie object.

Jak porównywać obiekty w testach jednostkowych, jeżeli nie przesłonimy metody Equals - DevKR

Sztuka programowania 2009 dni, 4 godziny, 46 minut temu Krzysztof_DevKR 142 źrodło rozwiń

Dlaczego nie lubię override Equal? Wszystko jest dla ludzi. Pewnie się nawet zbłaźnię tą opowieścią :] Ostatnio poszukiwałam błędu w kodzie, w którym przeciążone były funkcje Equals (o czym dowiedziałam się po znacznym czasie spędzonym z debuggerem), a czasem także ==. Błąd okazał się dość paskudny bo był nieprzewidywalny. Problem był po dodaniu elementu do kolekcji - nagle zwracane były nieprawidłowe elementy z kolekcji. Na pierwszy rzut oka Equals wyglądał dobrze, zgodnie z zasadami zalecanymi pr...

Tagi: C#, Equals
Dziel się z innymi:
Programistka i kot: Equal override

Inne 4672 dni, 19 godzin, 26 minut temu aggi 154 źrodło rozwiń

W C# obiekty zwykle dostępne są poprzez referencje. Zatem zmienna typu T (jeśli jest on klasą) nie zawiera samego obiektu T, lecz tylko odwołanie do niego. Porównując dwie takie zmienne przy pomocy operatora == domyślnie sprawdzamy więc, czy pokazują one na ten sam obiekt. Podobnie jest też przy użyciu domyślnej wersji metody System.Object.Equals; robi ona dokładnie to samo, co wspomniany operator. Można mądrze powiedzieć, że oba mechanizmy sprawdzają relację identyczności obiektów.

Źródło: xion.org.pl
Dziel się z innymi:
xion.log » C#: referencje i porównywanie

Inne 5458 dni, 6 godzin, 22 minuty temu macko 98 źrodło rozwiń

Najaktywniejsi w tym miesiącu