Nếu tôi đang có Lớp truy cập dữ liệu (nHibernate) ví dụ một lớp có tên là UserProvider và lớp Business Logic UserBl, tôi có nên thử nghiệm phương thức SaveUser hoặc GetUserById hoặc bất kỳ phương thức công khai nào khác trong lớp DA được gọi từ BL lớp. Đây có phải là dự phòng hay thực tiễn phổ biến để làm không?Tôi có nên kiểm tra lớp truy cập dữ liệu đơn vị không? Đây có phải là một thực hành tốt và làm thế nào để làm điều đó?
Có phải thông thường đối với lớp DA thử nghiệm đơn vị hay thuộc lớp Kiểm tra tích hợp? Có tốt hơn để có cơ sở dữ liệu thử nghiệm hoặc tạo dữ liệu cơ sở dữ liệu trong khi thử nghiệm không?
Mọi trợ giúp đều được đánh giá cao.
Điều này rất giống với quan điểm của tôi về thử nghiệm DAL. Nếu có bất kỳ logic nào ở đó và bạn muốn chắc chắn nó hoạt động, hãy viết các bài kiểm tra đơn vị cho nó. Nhìn chung, việc sử dụng thời gian và công sức của bạn tốt nhất có thể thiết lập các bài kiểm tra tích hợp dựa vào cơ sở dữ liệu thực với dữ liệu kiểm tra đã biết. –
Và SQL không chứa logic? –
@Pascal - cũng SQL của tôi thường không, không, nhưng tôi không nói rằng bạn không nên kiểm tra điều đó. Nhưng tôi sẽ không kiểm tra nó như là một phần của DAL, nó sẽ là một bộ kiểm thử đơn vị riêng biệt (có thể sử dụng một công cụ khác, có thể là DBFit), hoặc một phần của các bài kiểm tra tích hợp. Như tôi đã nói, tôi không nghĩ rằng các thử nghiệm đơn vị 'mã' nên chạm vào cơ sở dữ liệu do sự phức tạp của thiết lập, các vấn đề môi trường tiềm năng (cần DB hoặc mạng cục bộ) và giảm tốc độ. –