2013-05-28 30 views
5

Tôi đánh giá cao rằng đã có rất nhiều câu hỏi kiểm tra khung pháp nhân ở đây. Tuy nhiên, tôi đã xem qua số Effort, cho phép phiên bản bộ nhớ trong bối cảnh cơ sở dữ liệu. Tôi đoán tôi có một vài câu hỏi xung quanh khu vực này:Thử nghiệm thực thể khung 5 - Có trong cơ sở dữ liệu bộ nhớ một lựa chọn tốt

  1. Ưu và khuyết điểm của việc sử dụng phương pháp như vậy là gì? Tôi nghĩ rằng EF và cơ sở dữ liệu trong bộ nhớ sử dụng một kho lưu trữ và đơn vị của mô hình công việc, vậy điều đó có nghĩa là chúng ta không thực hiện riêng của chúng ta khi sử dụng phương pháp này không? Không.

  2. Có các tùy chọn khác như cung cấp IDBSet giả, sử dụng SQL CE hoặc triển khai kho lưu trữ và đơn vị công việc, Tôi có sử dụng một trong những kỹ thuật này tốt hơn không?

Tôi cảm thấy hơi bị choáng ngợp với số lượng lựa chọn tại đây. Tôi nhận ra rằng có lẽ không phải là một viên đạn bạc nhưng tôi hy vọng sẽ có một số hướng dẫn.

Cảm ơn

+0

Câu hỏi rất mơ hồ - nhưng bạn có thể thấy điều này hữu ích: http://www.codeproject.com/Articles/460175/Two-strategies-for-testing-Entity-Framework-Effort – ErikEJ

+0

Tôi chưa thử với EntityFramework , nhưng "trao đổi trong bộ nhớ SQLite DB" hoạt động tuyệt vời cho NHibernate. Nó vượt quá số lượng mã bạn phải viết để hoàn toàn giả lập các truy vấn cơ sở dữ liệu. –

+0

@ErikEJ - cảm ơn, vâng, tôi đã xem ví dụ đó và thực hiện một số công việc dựa trên nó. Tôi tự hỏi những gì mọi người có kinh nghiệm hơn tôi nghĩ rằng đó là một cách tốt để đi. – davy

Trả lời

1

1) pro: bạn có thể kiểm tra rằng chức năng Dal của bạn thực sự làm việc, bạn không dành lứa tuổi chế giễu kho, miễn là bạn dụ nó, bạn có thể chạy thử nghiệm nhanh hơn (giờ vào các dự án lớn). con: bạn không thực sự thử nghiệm db thực tế của bạn - đánh bại điểm kiểm thử tích hợp. Thay đổi cơ sở dữ liệu cũng là một chuỗi cấu hình. Chỉnh sửa sau: Tôi sử dụng để kiểm tra đơn vị một tấn, tôi có xu hướng thích lát dọc bây giờ. Tôi thấy rằng do thời gian tôi quan tâm đến cơ sở dữ liệu i am tại thời điểm mà tôi cần một bài kiểm tra tích hợp anyway.

Cá nhân tôi là người hâm mộ thử nghiệm từ đầu đến cuối vì nó giữ cho các bài kiểm tra tập trung - giảm số lượng và thực sự kiểm tra dựa vào đặc điểm kỹ thuật.

2) mẫu uow và kho lưu trữ tạo điều kiện thuận lợi cho những thứ khác nhau. Kho lưu trữ đóng gói DAL và phải trừu tượng ra khỏi chính nhà cung cấp db - thường thông qua một đơn vị mẫu công việc. Đơn vị công việc về cơ bản cung cấp cho bạn quyền truy cập giao dịch và sẽ cung cấp cho bạn móc mà bạn sử dụng trong bộ nhớ db khi thử nghiệm. Vì vậy, cá nhân tôi không cảm thấy như họ là vô ích. Khi bạn muốn thử nghiệm và giả lập dal của bạn (nói cho một bài kiểm tra đơn vị nhỏ hơn là chấp nhận/tích hợp) mô hình repro sẽ trả tiền cho chính nó. Bạn có thể lấy đi mà không có nó? có lẽ nhưng chi phí để có nó là nhỏ và cũng làm cho mọi thứ gọn gàng và ra lệnh. Bên cạnh đó như gợi ý ở trên khi tôi cuối cùng nhận được xung quanh để cần phải thực hiện các db tôi không muốn một thử nghiệm tích hợp - tôi tìm thấy những có thể dễ dàng được thực hiện từ cấp ui vì tôi đã làm việc/thử nghiệm từ bên ngoài.

3) dunno không phải là điều mà bất kỳ ai cũng có thể trả lời cho bạn. Chơi với chúng.