Ich denke, Sie sollten einen Komponententest mit dem aktuellen Verhalten durchführen und in den Kommentaren den richtigen Test und das richtige Verhalten hinzufügen. Beispiel:
@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));
}
Auf diese Weise schlägt der Build fehl, sobald der Fix verfügbar ist, und Sie werden auf den fehlgeschlagenen Test hingewiesen. Wenn Sie sich den Test ansehen, werden Sie feststellen, dass Sie das Verhalten geändert haben und der Test aktualisiert werden muss.
EDIT: Wie Captain Man sagte, wird dies in großen Projekten nicht so schnell behoben, aber aus Dokumentationsgründen ist die ursprüngliche Antwort besser als nichts.
Eine bessere Möglichkeit besteht darin, den aktuellen Test zu duplizieren und dafür zu sorgen, dass der Klon das Richtige behauptet und @Ignore
dies mit einer Meldung, z
@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));
}
Dies ist mit der Konvention in Ihrem Team verbunden, um die Anzahl der @Ignore
D-Tests zu reduzieren . Genauso wie Sie den Test einführen oder ändern würden, um den Fehler wiederzugeben, mit der Ausnahme, dass Sie den Build nicht fehlschlagen, wenn dies für Ihr Team kritisch ist, wie OP sagte, dass der Bugfix nicht in der aktuellen Version enthalten sein wird .