Annotazioni SpringJUnitConfig e SpringJUnitWebConfig nella primavera 5

1. Introduzione

In questo rapido articolo, daremo un'occhiata alle nuove annotazioni @SpringJUnitConfig e @SpringJUnitWebConfig disponibili nella primavera 5.

Queste annotazioni sono una composizione di annotazioni JUnit 5 e Spring 5 che rendono la creazione di test più facile e veloce.

2. @SpringJUnitConfig

@SpringJUnitConfig combina queste 2 annotazioni:

  • @ExtendWith (SpringExtension.class) da JUnit 5 per eseguire il test con laclasse SpringExtension e
  • @ContextConfiguration da Spring Testing per caricare il contesto Spring

Creiamo un test e utilizziamo questa annotazione nella pratica:

@SpringJUnitConfig(SpringJUnitConfigIntegrationTest.Config.class) public class SpringJUnitConfigIntegrationTest { @Configuration static class Config {} }

Si noti che, a differenza di @ContextConfiguration , le classi di configurazione vengono dichiarate utilizzando l' attributo value . Tuttavia, le posizioni delle risorse dovrebbero essere specificate con l' attributo locations .

Ora possiamo verificare che il contesto Spring sia stato realmente caricato:

@Autowired private ApplicationContext applicationContext; @Test void givenAppContext_WhenInjected_ThenItShouldNotBeNull() { assertNotNull(applicationContext); }

Infine, qui abbiamo il codice equivalente di @SpringJUnitConfig (SpringJUnitConfigTest.Config.class):

@ExtendWith(SpringExtension.class) @ContextConfiguration(classes = SpringJUnitConfigTest.Config.class)

3. @SpringJUnitWebConfig

@SpringJUnitWebConfig combina le stesse annotazioni di @SpringJUnitConfig più @WebAppConfiguration dai test di primavera - per caricare WebApplicationContext .

Vediamo come funziona questa annotazione:

@SpringJUnitWebConfig(SpringJUnitWebConfigIntegrationTest.Config.class) public class SpringJUnitWebConfigIntegrationTest { @Configuration static class Config { } }

Come @SpringJUnitConfig , le classi di configurazione vanno nella valore di attributo e tutte le risorse vengono specificati utilizzando il luoghi attributo.

Inoltre, l' attributo value di @WebAppConfiguration dovrebbe ora essere specificato utilizzando l' attributo resourcePath . Per impostazione predefinita, questo attributo è impostato su "src / main / webapp" .

Verifichiamo ora che WebApplicationContext sia stato realmente caricato:

@Autowired private WebApplicationContext webAppContext; @Test void givenWebAppContext_WhenInjected_ThenItShouldNotBeNull() { assertNotNull(webAppContext); }

Di nuovo, qui abbiamo il codice equivalente senza usare @SpringJUnitWebConfig :

@ExtendWith(SpringExtension.class) @WebAppConfiguration @ContextConfiguration(classes = SpringJUnitWebConfigIntegrationTest.Config.class)

4. Conclusione

In questo breve tutorial, abbiamo mostrato come utilizzare le annotazioni @SpringJUnitConfig e @SpringJUnitWebConfig appena introdotte nella primavera 5.

Il codice sorgente completo per gli esempi è disponibile su GitHub.