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.


$config[zx-auto] not found$config[zx-overlay] not found