Zawsze zastanawiałem się, co dokładnie oznacza rzeczywiste i oczekiwane w assertEquals
w bibliotekach takich jak TestNG.assertEquals, co jest rzeczywiste i czego się oczekuje?
Jeśli czytamy Java Dokumenty widzimy:
public static void assertEquals(... actual, ... expected)
Parameters:
actual - the actual value
expected - the expected value
Z mojego zrozumienia wartość expected
znany jest jeden, więc jeden oczekujemy, a jeden actual
jest jeden chcemy zweryfikować. Załóżmy na przykład, że chcemy przetestować funkcję fooBar
, która zawsze musi zwrócić 56
.
W takim przypadku zrobiłbym: assertEquals(sth.fooBar(), 56)
. Ale szybkie wyszukiwanie na GitHub wydaje się, że ludzie robią to na odwrót, więc. Ale jak można oczekiwać wartości sth.fooBar()
, gdy nawet nie znamy tej wartości? Wydaje się, że sth.fooBar()
jest rzeczywistą wartością, którą porównujemy z oczekiwaną, którą już znamy.
Wiem, że nie ma różnicy w poprawności testu, ale chciałbym podążać "poprawną" drogą.
Prawdopodobnie zrobili to w pośpiechu i nie dbali o porządek nazewnictwa tak bardzo jak ty :) – ControlAltDel