- More Unit - http://moreunit.sourceforge.net/ - między innymi: przeskakiwanie między testem a kodem klasy (CTRL-J) i szybkie uruchamianie bieżącego testu (CTRL-R)
- Mouse Feed - https://github.com/heeckhau/mousefeed - podpowiadanie skrótów klawiaturowych do czynności wykonywanych myszą
- Infinitest - http://infinitest.github.io/ - ciągłe uruchamianie testów IDE
- Fluent Builder Generator - https://code.google.com/p/fluent-builders-generator-eclipse-plugin/ - generowanie fluent builderów dla klasy
- EclEmma - http://www.eclemma.org/ - pokazanie pokrycia kodu produkcyjnego przez testy automatyczne
- Pit Eclipse - https://github.com/philglover/pitclipse - integracja narzędzia do testowania mutacyjnego PIT
Window -> Preferences -> Java -> Editor -> Content Assist -> Favorites
Warto dodać:
org.assertj.core.api.Assertions
org.junit.jupiter.api.Assertions
org.mockito.BDDMockito
org.mockito.Mockito
org.mockito.Matchers
junitparams.JUnitParamsRunner
(Eclipse automatycznie doda .*
na końcu)
Więcej informacji: http://stackoverflow.com/questions/288861/eclipse-optimize-imports-to-include-static-imports
Window -> Preferences -> Java -> Editor -> Templates
Tworzymy lub modyfikujemy istniejący szablon test (JUnit 5)
na coś podobnego do:
@Test
public void should${someMeaningfulName}() {
//given
${cursor}
//when
//then
}${:import(org.junit.jupiter.api.Test)}
Więcej informacji: https://howtodoinjava.com/junit5/code-test-templates-eclipse/
Window -> Preferences -> Java -> Editor -> Templates
Istniejący szablon test
zmieniamy na coś podobnego do:
@Test
public void should${someMeaningfulName}() {
//given
${cursor}
//when
//then
}${:import(org.junit.Test)}
Więcej informacji: http://www.macluq.com/2013/01/07/eclipse-template-to-insert-test-methods-should-given-when-then/
Window -> Preferences -> MoreUnit -> Java
W polu Pattern
zmieniamy ${srcFile}Test
na ${srcFile}*Test
.
Dzięki tej zmianie obsługiwane będzie przełączanie między klasą produkcyjną a testami przy więcej niż jednej klasie testowej (np. MagicHat
i testy MagicHatTest
oraz MagicHatIntegTest
).
Ograniczenie 80 znaków miało swoje uzasadnienie historyczne, jednak obecnie większość edytuje kod Java w IDE w trybie graficznym na monitorach/wyświetlaczach mieszczących znacznie więcej linii. Sensowna wydaje się zmiana ustawień z domyślnych 80 na 120 lub (wedle preferencji) nawet na 150 znaków, aby w przypadku użycia automatycznego formatowania nie przeżyć rozczarowania.
Java -> Code Style -> Formatter -> New... -> "Long lines" -> OK ->
Line Wrapping -> Maximum line width -> 120 -> OK
Wszystkie pliki w przekazanych przykładach są kodowane w UTF-8. Aby uniknąć problemów z komentarzami w języku polskim pod systemem Windows należy zmienić kodowanie na UTF-8 (Eclipse domyślnie zakłada kodowanie systemowe - Windows 1250).
Window -> Preferences -> General -> Workspace -> Text file encoding
W celu umożłiwienia działania Gradle (Wrappera) w środowisku wymuszającym dostępu do internetu za pomocą proxy należy ustawiać zmienne systemowe definiujące ten serwer: http.proxyHost
, http.proxyPort
, http.proxyUser
i http.proxyPassword
.
Alternatywnie można dane te skonfigurować w pliku ~/.gradle/gradle.properties
:
systemProp.http.proxyHost=proxy.example.com
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=username
systemProp.http.proxyPassword=password
Uwaga! Przy korzystaniu z pliku gradle.properties
trzeba pamiętać o prefiksie systemProp.
.
Uwaga2 Trzymanie hasła domenowego w niezaszyfrowanej postaci na dysku tworzy ryzyko związane z bezpieczeństwem
CTRL-SHIFT-M
- zamień konstrukcjęAssertions.assertThat(...)
na statyczny importCTRL-J
- przeskocz między testem a kodem klasy (More Unit)CTRL-R
- szybkie uruchamianie bieżącego testu (More Unit)CTRL-E
- przeskok między ostatnio używanymi klasami
Potencjalnie mniej znane ciekawe biblioteki wykorzystane w czasie szkolenia:
- AssertJ - rozbudowany zestaw assersji
Autor: Marcin Zajączkowski. Utwór jest dostępny na licencji CC BY-SA 4.0.