Sto leggendo sui test basati su proprietà e mi chiedo come posso testare questo codice usando quel paradigma.
class Invoice {
private final String id;
private final String companyName;
public String name() {
return id + "_" + removeDots(companyName.trim());
}
}
Voglio testare il metodo Invoice::name
, quindi vorrei fare qualcosa del genere:
class InvoiceTest {
//Let's say 'id' and 'companyName' are random auto-generated values
//by some framework
@Test
public void nameTest(String id, String companyName) {
Invoice invoice = new Invoice(id, companyName);
assertThat(invoice.name()).isEqualTo(id + "_" + removeDots(companyName.trim()));
}
}
Come vedi, non ha senso. Sto reimplementando la logica nel metodo di test. Forse, è un test basato sulle proprietà adatto solo per la logica "matematica"?