Stručný sprievodca pre @TestPropertySource
1. Prehľad
Jar prináša veľa funkcií, ktoré nám pomáhajú s testovaním nášho kódu. Niekedy v našich testovacích prípadoch potrebujeme na nastavenie požadovaného scenára použiť konkrétne vlastnosti konfigurácie.
V týchto situáciách môžeme využiť @TestPropertySource anotácia. Pomocou tohto nástroja môžeme definovať konfiguračné zdroje, ktoré majú vyššiu prioritu ako akýkoľvek iný zdroj použitý v projekte.
V tomto krátkom návode preto uvidíme príklady, kde použijeme túto anotáciu. Analyzujeme tiež jeho predvolené správanie a hlavné atribúty, ktoré podporuje.
Ak sa chcete dozvedieť viac informácií o testovaní v Spring Boot, odporúčame vám pozrieť sa na náš tutoriál „Testovanie v Spring Boot“.
2. Závislosti
Najjednoduchší spôsob, ako do nášho projektu zahrnúť všetky požadované knižnice, je pridať test štartovacej pružiny artefakt v našom pom.xml spis:
org.springframework.boot test Spring-Boot-Starter-Test 2.0.5.RELEASE
Môžeme skontrolovať Maven Central a overiť, že používame najnovšiu verziu štartovacej knižnice.
3. Ako používať @TestPropertySource
Poďme si predstaviť, že použijeme hodnotu vlastnosti vložením pomocou @Hodnota Jarná anotácia:
@Component public class ClassUsingProperty {@Value ("$ {baeldung.testpropertysource.one}") private String propertyOne; public String retrievePropertyOne () {návrat propertyOne; }}
Potom použijeme @TestPropertySource anotácia na úrovni triedy na definovanie nového zdroja konfigurácie a prepísanie hodnoty tejto vlastnosti:
@RunWith (SpringRunner.class) @ContextConfiguration (classes = ClassUsingProperty.class) @TestPropertySource verejná trieda DefaultTest {@Autowired ClassUsingProperty classUsingProperty; @Test public void givenDefaultTPS_whenVariableRetrieved_thenDefaultFileReturned () {String output = classUsingProperty.retrievePropertyOne (); assertThat (výstup) .isEqualTo ("predvolená hodnota"); }}
Spravidla vždy, keď použijeme túto testovaciu anotáciu, zahrnieme aj @ContextConfiguration jeden tak, aby sa načítal a konfiguroval ApplicationContext pre scenár.
V predvolenom nastavení je @TestPropertySource anotácia sa pokúša načítať a vlastnosti súbor vo vzťahu k triede, ktorá deklarovala anotáciu.
V tomto prípade napríklad ak je naša testovacia trieda v com.baeldung.testpropertysource balíček, potom budeme potrebovať súbor com / baeldung / testpropertysource / DefaultTest.properties v našej triede.
Poďme si to pridať do našej zložky zdrojov potom:
# DefaultTest.properties baeldung.testpropertysource.one = predvolená hodnota
Ďalej môžeme zmeniť predvolené umiestnenie konfiguračného súboru alebo pridať ďalšie vlastnosti, ktoré budú mať ešte vyššiu prioritu:
@TestPropertySource (locations = "/other-location.properties", properties = "baeldung.testpropertysource.one = other-property-value")
Na záver môžeme určiť, či chceme dediť umiestnenia a vlastnosti hodnoty z nadtried alebo nie. Preto môžeme prepnúť inheritLocations a inheritProperties atribúty, ktoré sú pravda predvolene.
4. Záver
Na tomto jednoduchom príklade sme sa naučili, ako používať @TestPropertySource Jarná anotácia efektívne.
Príklady rôznych scenárov nájdeme v našom úložisku Github.