2010-08-12 16 views
6

Próbuję skonfigurować niektóre testy jednostkowe, które korzystają z bazy danych. Chciałbym użyć testowej bazy danych na komputerze programisty, a nie na produkcyjnej bazie danych. Obecnie stosowaną metodą jest sprawdzenie zmiennej środowiskowej podczas łączenia się z bazą danych, a jeśli istnieje taka zmienna, aby połączyć się z lokalną zamiast produkcyjną.Ustawianie zmiennych środowiskowych dla wszystkich testów JUnit w Eclipse

Mogę ustawić zmienne środowiskowe w środowisku Eclipse za pomocą konfiguracji uruchamiania, ale chcę, aby tak się stało, gdy uruchamiany jest test JUnit (na wszelki wypadek).

Czy to możliwe w Eclipse?

Odpowiedz

5

Dlaczego nie wstrzyknąć połączenia z bazą danych do logiki, która wymaga testowania, a tylko radzić sobie ze zmiennymi środowiskowymi w kodzie startowym (które generalnie nie wymagają testów jednostkowych)?

Używanie zmiennych środowiskowych w testach jest ogólnie oznaką, że konfiguracja dzieje się zbyt głęboko w Twoim kodzie, IME. Tam, gdzie to możliwe, uważam, że znacznie lepiej jest konstruować obiekty ze wszystkim, czego potrzebują, poprzez zastrzyk zależności, utrzymując ten kod oddzielnie od kodu konfiguracji, który działa, co należy wstrzykiwać.

+0

Hmmmmm .... może wymagać re-faktoringu, aby to działało ... Chociaż wydaje się, że jest lepszym rozwiązaniem niż mieszanie konfiguracji i logiki, tak jak ja obecnie ... – KLee1

1

Myślę, że trudne informacje o połączeniu lub przełącznik test/produkcja nie jest najlepszym pomysłem.

W zasadzie mamy informacje o połączeniu DB w pliku właściwości. Podczas testów jednostkowych używamy innego pliku właściwości, który zawiera informacje o połączeniu dla testowej bazy danych. (Lekki w pamięci DB może być optymalny do testowania jednostkowego.)

Testy jednostkowe mają zazwyczaj własne instalacje, które stanowią podstawowe środowisko dla każdego z przypadków testowych, więc nie powinno być problemu z używaniem dedykowanej właściwości plik.

Powiązane problemy