Aktywne Wpisy
pakoraban +27
Mirki, macie w życiu osoby, których nie możecie zapomnieć pomimo upływu wielu lat? Chodzi mi o jakieś platoniczne miłości, obiekty westchnień. Ja do tej pory nie mogę sobie z tym poradzić, nawet zajęcie się czymś nie pomaga
Mam taki test:
@test
void whenUserExist_DeleteUserSessions() {
delete.deleteUserById(1);
assertThat(sessionChecker.hasActiveSession(1)).isFalse();
}
Doszedłem do wniosku, że do końca może nie być wiadome, co oznacza liczba „1” w tej asercji, więc postanowiłem ją zmienić na:
@test
void whenUserExist_DeleteUserSessions() {
int userId = 1;
delete.deleteUserById(1);
assertThat(sessionChecker.hasActiveSession(userId)).isFalse();
}
Co myślicie? Jaka jest Wasza opinia nt. zmiennych w testach?
#naukaprogramowania #java
To po pierwsze.
A po drugie nawet na sonarze masz regułę, że metoda musi się zaczynać od "test".
Po 3 jak używasz zmiennej to wrzucasz jej wartość i do argumentów metody usuwania sesji i jej sprawdzania.
@test
void whenUserExist_DeleteUserSessions() {
int userId = 1;
delete.deleteUserById(userId);
assertThat(sessionChecker.hasActiveSession(userId)).isFalse();
}
Zapomniałem zmienić w metodzie usuwania, mój błąd.
To jest zasada o której pisałem: https://rules.sonarsource.com/java/type/Code%20Smell/RSPEC-3578/
(Chociaż według Google Java Spec według nich underscore w nazwach metod testowych jest ok...)
A co do tego czy możesz używać zmiennej, to już naprawdę zależy. Jak metody nie są jasne to lepiej używać (albo jak
@PolishPsycho akurat w testach uzywanie underscore np w
https://rules.sonarsource.com/java/type/Code%20Smell/RSPEC-3578/
To oznacza ze w kazdym projekcie w jakim bylem ktos konfigurujacy sonara wylaczal te rulesety ;D
@Kamishimi: Nie, jest to absolutnie zabronione, za każdym razem jak używasz zmiennej w teście JVM eksploduje i zabija małego kotka. (⌐ ͡■ ͜ʖ ͡■)
Testy to kod jak każdy inny. Jeżeli użycie zmiennej zwiększy czytelność kodu albo pozwoli ci zachować DRY (Don't Repeat Yourself) to śmiało.