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"?