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 414 dni, 19 godzin, 13 minut temu Krzysztof_DevKR 141 ź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 3078 dni, 9 godzin, 52 minuty 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 3863 dni, 20 godzin, 49 minut temu macko 98 źrodło rozwiń

Sklep z gadzetami

Najaktywniejsi

1
(32 891,59)
2
(32 816,53)
3
(27 178,29)
4
(21 178,88)
5
(20 336,33)
6
(13 018,14)
7
(10 512,28)
8
(9 775,28)
9
(8 388,27)
10
(6 822,96)
11
(6 214,22)
12
(5 393,84)
13
(4 127,41)
14
(4 026,73)
15
(3 863,06)
16
(3 599,54)
17
(3 448,35)
18
(3 318,39)
19
(3 224,66)
20
(3 105,41)