2012-06-19 20 views
18

Tôi có một số mã tải xuống một số nguồn cấp dữ liệu RSS.Cần một số lời khuyên để cố gắng giả mạo .NET WebClient hoặc tương đương

Tôi đã sử dụng thư viện WebClient hoặc Argotic.Syndication.RssFeed.

Nhưng đây không phải là mockable :(

Tôi chắc chắn không muốn nhấn RSS feed thực mỗi khi tôi chạy thử nghiệm đơn vị.

Có ai có bất cứ đề nghị với những gì tôi có thể làm gì?

tôi có cần phải tạo một wrapper ác? Nếu vậy .. gợi ý về vấn đề này?

Trả lời

16

Tôi đi để tạo trình bao bọc cho mọi phụ thuộc bên ngoài (nếu thực tế). Vì vậy, mọi tương tác với hệ thống tập tin/một webservice/cơ sở dữ liệu nên được thực hiện thông qua một giao diện duy nhất, mà sẽ dẫn đến mã kiểm tra nhiều hơn.

Một giải pháp khác của khóa học là (như thường lệ) Typemock Isolator.

19

có ai có bất cứ đề nghị với những gì tôi có thể làm gì?

Tóm tắt cuộc gọi HTTP thực tế phía sau giao diện. Sau đó viết một implmentation của giao diện này bằng cách sử dụng WebClient. Bây giờ có lớp chính của bạn có giao diện này là phụ thuộc. Bây giờ bạn có thể giả lập giao diện này trong bài kiểm tra đơn vị và cấu hình khuôn khổ tiêm phụ thuộc của bạn tiêm thực hiện chính xác khi chạy.

+6

Đồng ý với bạn. Ví dụ: [Mocking System.Net.WebClient] (http://brunov.info/blog/2013/07/30/tdd-mocking-system-net-webclient/). –

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