Możesz zasugerować się testami, które zostały napisane w ramach Wydatków (ExpensesServiceIntegrationTest)
W teście, klasie bazowej InitIntegrationTestData, dobrze będzie stworzyć dwie nowe metody:
- initDatabaseByAssets(UserEntity, String)
- initDatabaseByAssets(UserEntity)
i zmodyfikować istniejącą (lub dodać jeśli nie istnieje) initDatabaseByAssets(UserEntity, Instant), nadając jej kwalifikator dostępu privatedwie
nowe metody będą wywoływały prywatną funkcję,
ale metoda z dwoma parametrami umożliwi zmianę incomeDate na wskazaną przy tworzeniu testu i doda brakujący string:
"T00:00:00.001Z"
do daty, która zostanie dostarczona w parametrze.a druga umożliwi wstawianie zawsze tej samej daty w teście np.: Instant.now()
HINT: Pisząc test, czy nie zwróciłeś uwagi, że nazwa FilterParametersEnum, już nie informuje o odpowiedzialności tego enuma, może warto zmienić ją na: FilterParametersCalendarEnum - nazwa jest bardziej adekwatna - w tym enumie są przechowywane tylko informacje o filtrach, które są w jakiś sposób połączone z kalendarzem, daty, miesiące, rok.
HINT: w testach utworzonych powinieneś wywołać kilka razy: initDatebaseByAssets(UserEntity, String), z odpowiednim Stringiem, jako datą.
HINT: może warto zastanowić się nad parametryzacją testów, ale zadnie nie wymaga ich wprowadzenia, w tym przypadku implementacja zależy od chęci programisty.
Robert Szczygielski Dice Dev. Polityka Prywatności i Regulamin Szkoleń Online
Strona www stworzona w kreatorze WebWave.