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 2230 dni, 9 godzin, 29 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 4894 dni, 8 minut temu aggi 157 ź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 5679 dni, 11 godzin, 5 minut temu macko 98 źrodło rozwiń

Najaktywniejsi w tym miesiącu