2008-09-24 30 views
5

Khi nào bạn kiểm tra đối với In-Memory Database so với Cơ sở dữ liệu phát triển?Trong trường hợp nào bạn thử nghiệm với Cơ sở dữ liệu trong bộ nhớ thay vì Cơ sở dữ liệu phát triển?

Ngoài ra, với tư cách là câu hỏi phụ có liên quan, khi bạn sử dụng Cơ sở dữ liệu phát triển, bạn có sử dụng Cơ sở dữ liệu phát triển riêng lẻ, Cơ sở dữ liệu phát triển tích hợp hay cả hai?

Ngoài ra, ++, để kiểm tra đơn vị, khi nào bạn sử dụng Cơ sở dữ liệu trong bộ nhớ trong việc loại bỏ Kho lưu trữ/DAL của bạn, v.v ...?

Trả lời

2

Đối với nhóm của tôi, bộ nhớ trong máy developper và cơ sở dữ liệu thực trên máy chủ tích hợp liên tục.

7

Trong bộ nhớ là lựa chọn tuyệt vời cho đơn vị đơn vị của bạn, khi dữ liệu dễ dàng gieo hạt cho các trường hợp thử nghiệm nhất định của bạn và một hoạt động rất cụ thể đang được thử nghiệm. Một cơ sở dữ liệu thực sự tốt hơn để kiểm tra tích hợp, trong đó các điều kiện tiên quyết dữ liệu phức tạp hơn và có giá trị để giữ lại dữ liệu cơ sở sau khi hoàn thành các thử nghiệm. Đối với chúng tôi, điều duy nhất chúng tôi cho phép trong bộ kiểm tra JUnit 'nhanh' của chúng tôi là những thứ không có bất kỳ phụ thuộc bên ngoài nào (cơ sở dữ liệu, tệp, mạng, v.v.) để bộ phần mềm có thể chạy nhanh chóng và hiệu quả bởi cả nhà phát triển và tích hợp liên tục khi đăng ký. Nếu có một thử nghiệm nhất định mà hoàn toàn cần phải đi đến DB, thì một trong những bộ nhớ là cách duy nhất để đi.

Một vài điểm cần lưu ý:

  • Suy nghĩ cẩn thận nếu bạn cần phải sử dụng một cơ sở dữ liệu ở tất cả trong một thử nghiệm đơn vị. Nó có thể là dấu hiệu của thiết kế kém trong đó lớp truy cập dữ liệu là được kết hợp quá chặt với hoạt động kinh doanh lôgic mà bạn đang thử nghiệm và không thể bị loại bỏ.
  • Nếu sử dụng cơ sở dữ liệu thực để kiểm tra tích hợp, đảm bảo rằng các thử nghiệm luôn khôi phục dữ liệu về trạng thái nguyên sơ khi hoàn tất. Tôi đã nhìn thấy rất nhiều thời gian lãng phí và thử nghiệm tích hợp không thành công vì một số thử nghiệm khác đã làm sai lệch dữ liệu.

Đối với câu hỏi khác của bạn, nó thực sự phụ thuộc vào nhu cầu của bạn. Nguyên tắc chung là một cơ sở dữ liệu phát triển trên mỗi nhánh mã, vì các thay đổi lược đồ có thể cần thiết không liên quan đến một nhánh mã khác. Chỉ cần một cơ sở dữ liệu phát triển chuyên dụng là rất quan trọng; Tôi rất ngạc nhiên khi biết có bao nhiêu đội phát triển phải chia sẻ cơ sở dữ liệu với nhóm QA, v.v. Điều quan trọng là có thể thực hiện thay đổi trong môi trường sandbox không ảnh hưởng đến các nhóm khác hoặc ngăn người khác thực hiện công việc của họ, vì vậy nếu bạn đã đáp ứng các yêu cầu đó mà bạn đang làm tốt.

Các vấn đề liên quan