Aktywne Wpisy
![Cieple_Mleko](https://wykop.pl/cdn/c3397992/Cieple_Mleko_bY6H35n9hy,q60.jpg)
Cieple_Mleko +32
Byłem u psychologa. Czy raczej psycholożki. Z psycha naprawdę ze źle, myśli samobójcze, depresja. Powiedziała mi, że leki tylko zagłuszą ten stan a najlepsza będzie psychoterapia. Przychodzę na jedną wizytę. Pyta mnie tylko o dzieciństwo i mówi że wszystkie moje problemy wynikają z dzieciństwa. Co z tego że była nas czwórka i reszta rodzeństwa nie ma takich problemów z psycha jak ja. Już nie mówiąc o tym że w domu było w
typ53B +26
stworzyłem sobie klasę pomocniczą do rejestracji w której trzymam jsony:
public class RegistrationControllerHelper {
public static final String validCredentials =
"{\"username\": \"New\", \"email\": \"new@mail.com\", \"password\": \"Password#3\"}";
public static final String invalidCredentials =
"{\"username\": \"invalid\", \"email\": \"invalid\", \"password\": \"invalid\"}";
public static final String malformedRequest =
"{\"username\": \"New\", \"email\": \"new@mail.com\", \"password\": \"Password#3\"";
public static final String emptyCredentials =
"{\"username\": \"\", \"email\": \"\", \"password\": \"\"}";
}
I teraz pytanie na takim przykładzie. Mam taki test:
@test
@Transactional
void whenRegistrationSuccess_Return201() throws Exception {
// given
String registrationJson = RegistrationControllerHelper.validCredentials;
// when & then
mockMvc.perform(post(registrationUri)
.contentType(MediaType.APPLICATION_JSON)
.content(registrationJson))
.andExpect(status().is(201));
}
czy mogę i powinienem zamiast
String registrationJson = RegistrationControllerHelper.validCredentials;
napisać
String registrationJson = validCredentials;
Czy to będzie czytelne i zgodne z dobrymi praktykami ?
#java #naukaprogramowania #spring
Jak inaczej powinienem to zrobić?
Ja bym proponował zostawić jak jest, ale już nie ucinać tej klasy przed nazwa stałej. Może jakiś skrócić nazwę żeby to było bardziej zgrabne?
RegistrationRequests
np?Może zamiast klasy by użyć jakiegoś enuma?
RegistrationControllerHelper
, która trzyma same stringi, które w rzeczywistości używasz tylko w jednej klasie. Już nie raz widziałem repo, w którym były klasy które posiadały dzisiątki zmiennych, które w rzeczywistości były używane tylko w jednym miejscu. No ale odpowiadając na Twoje pytanie: Nie ma znaczenia. :)O ile nie masz jakiegos standardu odgórnie narzuconego, to możesz zrobić jak uważasz. To nie wpływa na czytelność, jedynie
1. Nie tworzyłbym żadnych Helperów - co taka klasa oznacza? Sam widzisz, że nie do końca wiesz co ona robi i tak ją nazwałeś ( ͡° ͜ʖ ͡°)
2. Jeżeli jest to używane tylko przez test to dałbym to do klasy testowej
3. W nowszej wersji Java możesz użyć """ aby zrobić wielolinijkowy String i wtedy nie bedziesz musiał escepować \"
4. Nie wiem jaka jest logika biznesowa, ale zazwyczaj nie wysyłamy Stringów tylko klasę któa jest parsowana na json. Jeżeli się da to stworzyłbym klasę która trzyma te pola.
5. Jak już koniecznie chcesz to dać do
Komentarz usunięty przez autora
public record RegisterRequest(@JsonProperty @NotEmpty(message = "The username field cannot be empty")
String username,
@JsonProperty @NotEmpty(message = "The
1. Dalej nie widzę sensu wydzielanai osobnej klasy
new RegisterRequest("New", "new@mail.com", "Password#3");
to nie jest jakaś skomplikowana logika którą należy wydzielić, tylko integralna część testu
2. Jak już chcesz coś wydzielac to raczej