Lorenzo3 ha scritto:
Per sintetizzare: cerco un modo "easy" di passare i vettori a un metodo di test parametrizzato in JUnit5 (o anche altra libreria!!). Qualcosa tipo:
@ValueSource(doublesArray = {new double[]{1.0, 2.0, 3.0}})
Ti parlo innanzitutto di JUnit 4 (il 5 non ho ancora avuto modo di vederlo/usarlo appropriatamente ma credo valga lo stesso su quanto dirò).
Con JUnit 4 è abbastanza facile fare dei test "parametrizzati". Basta che guardi ad esempio la documentazione ufficiale:
Parameterized tests
Nota che JUnit (perlomeno 4.x) non ha una @ValueSource, come leggi al link sopra la parametrizzazione si dichiara in ben altro modo!
Il punto/problema di JUnit 4 è che i test parametrizzati sono alquanto limitati. Perché hai un solo blocco di N parametri e questi si applicheranno a
tutti i test in quella classe. Non puoi avere nella stessa classe ad esempio i parametri X e Y per un metodo di test e il parametro Z per un altro metodo di test.
Se hai bisogno di fare cose più particolari con le parametrizzazioni, c'è TestNG, la libreria di unit-test che è il "concorrente" di JUnit sebbene sia meno nota/usata.
P.S. per curiosità, vado a vedere in JUnit 5 se hanno migliorato la questione dei test parametrizzati.
EDIT: visto subito adesso, in JUnit 5 sì, hanno migliorato le cose sui test parametrizzati. E vedo che ha una annotazione @ValueSource.
La documentazione la trovi qui:
3.13. Parameterized Tests
P.S.2 la documentazione di JUnit 5 dice che questi nuovi test parametrizzati sono una
experimental feature.