Cześć,
mam takie przykładowe testy:
@Test
void whenAuthenticationFails_SessionNotCreated() {
String sessionToken = "2eds2etfghthheyyyjh536t3fasd235teg";
LoginRequest request = loginHelper.loginInvalidPassword("User");
assertThrows(BadCredentialsException.class,
() -> userSessionCreator.createUserSession(request, sessionToken));
assertThat(sessionChecker.userHasSession("User")).isFalse();
}
@Test
void whenSessionCreated_SessionIsStored() {
String sessionToken = "2eds2etfghthheyyyjh536t3fasd235teg";
userSessionCreator.createUserSession(loginHelper.login("User"), sessionToken);
assertThat(sessionChecker.userHasSession("User")).isTrue();
}
@Test
void whenSessionCreated_UserIdIsCorrect() {
String sessionToken = "2eds2etfghthheyyyjh536t3fasd235teg";
userSessionCreator.createUserSession(loginHelper.login("User"), sessionToken);
Session session = sessionFetcher.fetchSessionForToken("2eds2etfghthheyyyjh536t3fasd235teg");
assertThat(session.getUserId()).isEqualTo(1);
}
Czy dobrym pomysłem będzie stworzenie jakiegoś wspólnego interfejsu dla klas testowych, w którym będę przechowywał stałe?
Myślałem o czymś takim:
public interface TestConstants {
String SESSION_TOKEN = "2eds2etfghthheyyyjh536t3fasd235teg";
int USER_ID = 1;
String USERNAME = "User";
}
@Test
void whenAuthenticationFails_SessionNotCreated() {
LoginRequest request = loginHelper.loginInvalidPassword(TestConstants.USERNAME);
assertThrows(BadCredentialsException.class,
() -> userSessionCreator.createUserSession(request, TestConstants.SESSION_TOKEN));
assertThat(sessionChecker.userHasSession(TestConstants.USERNAME)).isFalse();
}
@Test
void whenSessionCreated_SessionIsStored() {
userSessionCreator.createUserSession(loginHelper.login(TestConstants.USERNAME), TestConstants.SESSION_TOKEN);
assertThat(sessionChecker.userHasSession(TestConstants.USERNAME)).isTrue();
}
@Test
void whenSessionCreated_UserIdIsCorrect() {
userSessionCreator.createUserSession(loginHelper.login(TestConstants.USERNAME), TestConstants.SESSION_TOKEN);
Session session = sessionFetcher.fetchSessionForToken(TestConstants.SESSION_TOKEN);
assertThat(session.getUserId()).isEqualTo(TestConstants.USER_ID);
}
Co myślicie?
Dzięki za pomoc