Tôi nghĩ rằng nó thường ok (tôi muốn giới thiệu một chuỗi liên tục cho SQL của bạn để tránh lặp lại nó, btw).
Tất nhiên, một điều bạn không thử nghiệm với điều này là sự tương tác thực sự với cơ sở dữ liệu (vì điều này đang được mô phỏng). Vì vậy, tôi sẽ mong đợi một thử nghiệm tương ứng (hoặc thiết lập?) Mà thực sự tương tác với cơ sở dữ liệu, và chèn/rollback khi thích hợp. Nếu không, bạn đang thử nghiệm một cái gì đó (tại thời điểm này) là khá tầm thường.
Lưu ý về tổ chức kiểm tra. Các thử nghiệm dưới đây 2 điều (xây dựng không thành công thất bại, và xây dựng bình thường thành công). Tôi sẽ chia phần này thành hai bài kiểm tra, nếu không phần thứ nhất thất bại, bạn không bao giờ kiểm tra phần thứ hai (trong các tình huống phức tạp hơn, điều này làm cho chẩn đoán lỗi khó hơn, vì bạn có thể không có nhiều bằng chứng như bạn yêu cầu)
public void testPostDAO() {
try {
new PostDAO(null);
fail("Expected IllegalArgumentException");
} catch (IllegalArgumentException ex) {}
new PostDAO(connectionMock);
}
Một số người phản đối thử nghiệm new PostDAO(null)
do tầm thường của nó. Tôi không đồng ý. Một trong những lý do bạn viết kiểm tra là đảm bảo hành vi không thay đổi trừ khi bạn mong đợi nó đến. Vì vậy, ở trên là tốt - Tôi chỉ cần chia nó thành hai bài kiểm tra rõ ràng.
Nguồn
2009-07-12 10:20:16
Liên kết pastebin đã chết. –
mà không có các liên kết câu hỏi này mất ý nghĩa. – Asgaroth
Khó theo dõi mà không cần bất kỳ mã nào ... –