Tôi bắt đầu với thử nghiệm đơn vị và cố gắng thực hiện một số TDD. Tôi đã đọc một chút công bằng về chủ đề và viết một vài bài kiểm tra. Tôi chỉ muốn biết nếu sau đây là cách tiếp cận đúng.Tôi nên kiểm tra đơn vị gửi email từ bộ điều khiển như thế nào?
Tôi muốn thêm cơ sở "liên hệ với chúng tôi" thông thường trên trang web của mình. Bạn biết điều đó, người dùng điền vào một biểu mẫu với địa chỉ email của họ, nhập một thông điệp ngắn gọn và nhấn một nút để đăng biểu mẫu trở lại.
Chất kết dính mô hình thực hiện công cụ của họ và phương pháp hành động của tôi chấp nhận dữ liệu được đăng dưới dạng mô hình. Phương thức hành động sau đó sẽ phân tích cú pháp mô hình và sử dụng smtp để gửi email tới quản trị viên trang web để họ truy cập vào biểu mẫu liên hệ trên trang web của họ.
Bây giờ cho câu hỏi .... Để kiểm tra điều này, có thể tôi là đúng trong việc tạo ra một giao diện IMessageService rằng có một phương pháp Gửi (EMAILADDRESS, tin nhắn) để chấp nhận các địa chỉ email và nội dung thư. Thực hiện các inteface trong một lớp bê tông và để cho rằng lớp đối phó với các công cụ smtp và thực sự gửi thư.
Nếu tôi thêm giao diện làm tham số cho hàm tạo bộ điều khiển của mình thì tôi có thể sử dụng DI và IoC để chèn lớp bê tông vào bộ điều khiển. Nhưng khi thử nghiệm đơn vị tôi có thể tạo phiên bản giả hoặc giả của IMessageService và thực hiện các xác nhận về điều đó.
Lý do tôi hỏi là tôi đã thấy các ví dụ khác về những người tạo giao diện cho SmtpClient và sau đó chế nhạo điều đó. Có thực sự cần phải đi xa hay tôi không hiểu công cụ này?
Tôi đồng ý và có thể sẽ hữu ích ngay khi bạn cần IMailClientAsync mà bạn có thể trao đổi. – Hal