Trong các thử nghiệm tích hợp, các quá trình không đồng bộ (các phương thức, các dịch vụ bên ngoài) tạo ra một mã kiểm tra rất khó khăn. Nếu thay vào đó, tôi tính ra phần không đồng bộ và tạo ra một sự phụ thuộc và thay thế nó bằng một phần đồng bộ để thử nghiệm, đó có phải là một "điều tốt" không?Trong thử nghiệm tích hợp, có thay đổi không khi sử dụng quy trình Async với quy trình Đồng bộ để kiểm tra?
Bằng cách thay thế quy trình không đồng bộ bằng một quy trình đồng bộ, tôi có không thử nghiệm trong tinh thần thử nghiệm tích hợp không? Tôi đoán tôi giả định rằng thử nghiệm tích hợp đề cập đến thử nghiệm gần với điều thực.
+1 để tập trung vào kiểm tra tích hợp. Tôi đồng ý rằng điều này có thể là nơi những khiếm khuyết khó chịu ẩn nấp. – djna
Tôi sử dụng phương thức "waitFor" vào lúc này. Tuy nhiên, không phải tất cả xử lý async đều được tạo bằng nhau. Trong ứng dụng của tôi, xử lý async được xử lý bởi máy bơm thông báo Windows (WindowsFormsSynchronizationContext in .NET) và vì một số lý do, nó không giống như cách nó được sử dụng trong thử nghiệm. Do đó, câu hỏi của tôi để làm việc xung quanh nếu có thể. Nhưng bạn nói đúng - chúng ta nên thử nghiệm gần với thực tế nhất có thể. –
Ngoài ra, ứng dụng của tôi là ứng dụng khách phong phú, điều đó có yêu cầu/cho phép hiển thị giao diện người dùng trong khi thử nghiệm tích hợp không? Cơ chế async được gắn chặt với UI (nó là máy bơm Windows và nó không hoạt động mà không có UI) Tôi có thể tinh chỉnh mã kiểm tra để giao diện người dùng hiện tại nhưng không can thiệp nhưng tôi không biết chắc nó sẽ bay như thế nào khi đối mặt với hội nhập liên tục. Tôi bị cám dỗ để thay thế các máy bơm tin nhắn dựa async với cái gì khác vì lợi ích của thử nghiệm nhưng đó có vẻ là một công việc khủng khiếp rất nhiều. –