Tôi nghĩ bạn nên có một bài kiểm tra đơn vị với hành vi hiện tại và trong các bình luận, thêm bài kiểm tra đúng và hành vi đúng. Thí dụ:
@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));
}
Bằng cách này, khi có bản sửa lỗi, bản dựng sẽ thất bại, thông báo cho bạn bài kiểm tra thất bại. Khi bạn nhìn vào bài kiểm tra, bạn sẽ biết rằng bạn đã thay đổi hành vi và bài kiểm tra phải được cập nhật.
EDIT: Như Captain Man đã nói, trong các dự án lớn, điều này sẽ không được khắc phục sớm nhưng vì lợi ích tài liệu, câu trả lời ban đầu tốt hơn là không có gì.
Một cách tốt hơn để làm điều đó là sao chép thử nghiệm hiện tại, làm cho bản sao khẳng định đúng và @Ignore
bằng một thông điệp, ví dụ
@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));
}
Điều này đi kèm với quy ước trong nhóm của bạn để giảm số lượng @Ignore
bài kiểm tra d. Giống như cách bạn thực hiện với việc giới thiệu hoặc thay đổi thử nghiệm để phản ánh lỗi, ngoại trừ bạn không thất bại trong quá trình xây dựng nếu điều này rất quan trọng đối với nhóm của bạn, như OP nói rằng lỗi này sẽ không được đưa vào bản phát hành hiện tại .