Sto provando a scrivere un Unit Test per un bean semplice che viene utilizzato nel mio programma per convalidare i moduli. Il fagiolo è annotato con @Component
e ha una variabile di classe che viene inizializzata utilizzando @Value("${this.property.value}") private String thisProperty;
Population Spring @Value durante Unit Test
Vorrei scrivere unit test per i metodi di validazione all'interno di questa classe, tuttavia, se possibile, mi piacerebbe farlo senza utilizzare il file delle proprietà . Il mio ragionamento dietro questo, è che se il valore che sto tirando dal file delle proprietà cambia, vorrei che ciò non influisse sul mio caso di test. Il mio test case sta testando il codice che convalida il valore, non il valore stesso.
C'è un modo per utilizzare il codice Java all'interno della mia classe di test per inizializzare una classe Java e popolare la proprietà Spring @Value all'interno di quella classe, quindi usarla per testarla?
Ho trovato questo How To che sembra essere vicino, ma utilizza ancora un file di proprietà. Preferirei che fosse tutto codice Java.
Grazie
Esattamente quello che stavo cercando di fare e ciò che stavo cercando di impostare il valore all'interno della mia classe, grazie! – Kyle
O anche senza dipendenze Spring cambiando il campo in accesso predefinito (protetto da pacchetto) per renderlo facilmente accessibile al test. –
Esempio: 'org.springframework.test.util.ReflectionTestUtils.setField (classUnderTest," field "," value ");' – Olivier