Tôi đang bắt đầu một dự án mới và đang rất cố gắng sử dụng TDD để thúc đẩy thiết kế. Tôi đã nỗ lực trong nhiều năm và cuối cùng đã được chấp thuận dành thêm thời gian cho dự án này để sử dụng nó trong khi tôi học cách làm nó đúng cách.
Đây là một mô-đun mới, để gắn vào một hệ thống hiện có. Hiện tại, tất cả các truy cập dữ liệu xảy ra thông qua các dịch vụ web, phần lớn chỉ là một trình bao bọc mỏng cho các thủ tục lưu trữ cơ sở dữ liệu.
Một yêu cầu là đối với một cửa hàng nhất định, tôi trả lại tất cả các Đơn đặt hàng được coi là hợp lệ cho ứng dụng này. Một PO được coi là hợp lệ nếu ngày giao hàng rơi vào một phạm vi nhất định kể từ ngày mở cửa hàng (đây là cho các cửa hàng mới).
Bây giờ, tôi không thể đưa logic này vào mã ứng dụng, vì tôi sẽ không mang lại một triệu PO chỉ để có hàng tá áp dụng có thể áp dụng cho cửa hàng này với các ràng buộc ở trên.
Tôi đã suy nghĩ, tôi có thể chuyển phạm vi ngày cho một Proc GetValidPO và sử dụng các giá trị đó để trả về các PO hợp lệ. Nhưng, điều gì sẽ xảy ra nếu chúng ta thêm một yêu cầu khác vào thứ được coi là PO hợp lệ?
Và làm thế nào để tôi kiểm tra điều này và xác minh nó tiếp tục hoạt động? Chúng tôi không sử dụng ORM và điều đó khó có thể xảy ra. Và tôi không thể gọi DB trong bài kiểm tra của mình.
Tôi bị kẹt.
Suy nghĩ khác của tôi, có một số giả lập trả về dữ liệu hợp lệ, một số khác trả về một số dữ liệu xấu và kho lưu trữ cục bộ sẽ ném ngoại lệ nếu dữ liệu xấu xảy ra và kiểm tra xem ngoại lệ đó có bị ném nếu dữ liệu không hợp lệ được trả về bởi ProcValidPOs (hoặc giả được sử dụng trong thử nghiệm).
Điều này có nghĩa không? đây có phải là cách tốt hơn không?
CẬP NHẬT: Tôi có thể sử dụng EF có vẻ như. Bây giờ tôi chỉ cần tìm ra cách sử dụng nó, và làm cho nó có thể kiểm tra được, trong khi vẫn có thể dựa vào các thủ tục được lưu trữ và khó khăn trong việc có dữ liệu nằm rải rác trên một số cơ sở dữ liệu.