Spring + rozdzial baz danych + konfiguracja

0

Dzień dobry!
Razem z kolegą postanowiliśmy stworzyć projekt z użyciem Springa.
Postanowiliśmy wykorzystać te technologie:
Spring MVC, security, mobile, facebook integration, mail, jpa,
Widoki w freemakerze (to chyba dobry wybór?)
I wystawić jakieś restowe api

Jako że jestem leniwy korzystam z Spring Initializera.
No i cały problem z bazą danych. Do testowania logiki biznesowej będziemy mockować repozytoria i z tym nie ma problemu. A co jeśli, będziemy chcieli testować same repozytoria? Na produkcji chcemy korzystać z serwera z mysqlem, ale w trakcie tworzenia aplikacji nie ma sensu go utrzymywać. Wydaje mi się, że powinniśmy rozdzielić bazy na dwie: - jedna w pamięci(HSQLDB albo H2, nie mam pojęcia jaka między nimi różnica) - a druga już przygotowana na produkcję.
Czy to dobra strategia?

No i następna kwestia, jak to zrobić w springu?
Wystarczy że zrobię coś takiego?:

@Configuration
@EnableWebMvc
public class KonfiguracjaDeweloperska {
	@Bean
	@Profile("dev")
	public DataSource mojaBazaDanychWPamieci() {
	TUTAJ CONFIGURACJA
	}

	@Bean
	@Profile("prod")
	public DataSource mojaBazaDanychNaSerwerze() {
	TUTAJ CONFIGURACJA
	}
}

Czy coś takiego wystarczy?

Przepraszam z bałagan mentalny w mojej wypowiedzi, starałem się napisać najlepiej jak to możliwe.
Dzięki za odpowiedzi.

0

po co chcesz testować repozytoria? aż tak, że możliwe, że findAccountByName ktoś napisze na findByEmail ?

0
karolinaa napisał(a):

po co chcesz testować repozytoria? aż tak, że możliwe, że findAccountByName ktoś napisze na findByEmail ?

Chcemy dziedziczyć po JpaRepository i niech spring to sobie implementuje.
Czy w takim przypadku gdy mamy orma zamiast jdbc nie istnieje potrzeba testowania repozytoriów?
Czyli olać te testy?

0

tak olej te testy.

0

Testuje sie WŁASNY KOD. Testowanie czy Hibernate pobiera ci encje z bazy czy też nie zostaw developerom Hibernate. Tak samo niech się ludzie od SpringData martwią żeby dobrze się metody dostępowe generowały. Ty masz pisać testy do kodu który sam tworzysz.

0

Jest jeszcze coś takiego jak testy integracyjne.
Żeby nie zapisywać danych do bazy produkcyjnej używasz profili:

@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles("dev") 

I możesz przetestować DAO integracyjnie. Czyli sprawdzić, czy np. twoje zapytania są poprawne i zwracają to co chcesz z bazy testowej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1