Penso che dovresti avere un test unitario con il comportamento corrente e nei commenti, aggiungere il giusto test e il giusto comportamento. 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 che il test deve essere aggiornato.
EDIT:
Come ha detto il Capitano Man, nei progetti di grandi dimensioni, questo non verrà risolto in qualsiasi momento, ma per la documentazione, la risposta originale è meglio di niente.
Un modo migliore per farlo è duplicare il test corrente, fare in modo che il clone asserisca 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 include la convenzione del tuo team per ridurre il numero di test di @Ignore
d. Nello stesso modo in cui si farebbe introducendo o modificando il test per riflettere il bug, eccetto che non si fallisce la build se questo è fondamentale per il proprio team, come OP ha detto che il bugfix non sarà incluso nella versione corrente .