Penso che dovresti avere un test unitario con il comportamento attuale e nei commenti, aggiungere il test giusto e il comportamento giusto. Esempio:
@Test
public void test() {
// this is wrong, it should be fixed some time
Assert.assertEquals(2, new Calculator().plus(2,2));
// this is the expected behaviour, replace the above test when the fix is available
// Assert.assertEquals(4, new Calculator().plus(2, 2));
}
In questo modo, quando la correzione è disponibile, la compilazione fallirà, notando il test fallito. Quando guarderai il test, saprai che hai cambiato il comportamento e il test deve essere aggiornato.
EDIT: Come ha detto Captain Man, in grandi progetti, questo non verrà risolto in qualsiasi momento presto ma per motivi di documentazione, la risposta originale è meglio di niente.
Un modo migliore per farlo è duplicare il test corrente, facendo affermare al clone la cosa giusta e @Ignore
con un messaggio, ad es.
@Test
public void test() {
Assert.assertEquals(2, new Calculator().plus(2,2));
}
@Ignore("fix me, Calculator is giving the wrong result, see ticket BUG-12345 and delete #test() when fixed")
@Test
public void fixMe() {
Assert.assertEquals(4, new Calculator().plus(2, 2));
}
Questo viene fornito con la convenzione del tuo team per ridurre il numero di @Ignore
d test. Allo stesso modo in cui si farebbe con l'introduzione o la modifica del test per riflettere il bug, tranne per il fatto che non si fallisce la compilazione se questo è fondamentale per il proprio team, come OP ha detto che il bugfix non verrà incluso nella versione corrente .