Tôi có một EventBus ổi đơn giản với một sự kiện đơn giản và một người nghe đơn giản. Câu hỏi của tôi là mẫu thử nghiệm là gì để kiểm tra xem phương thức nghe có được gọi khi sự kiện được đăng.Ổn định sự kiệnBài thử nghiệm đơn vị
Trả lời
Tôi khuyên bạn nên kiểm tra xem EventBus có hoạt động đúng không không phải là bài kiểm tra UNIT mà bạn phải viết. Một trong những ưu điểm của việc sử dụng một thư viện (ít nhất là sử dụng một thư viện mà bạn tin tưởng) là các bài kiểm tra đơn vị đã được viết bởi nhà cung cấp thư viện. Vì vậy, xin vui lòng không lãng phí thời gian của bạn xác minh rằng các folks Google đã viết EventBus đúng cách. Để viết các bài kiểm tra đơn vị của hệ thống của bạn, EventBus nên được chế giễu và do đó người nghe của bạn sẽ không được gọi. Đây là một trong những lợi thế của việc sử dụng một tin nhắn xe buýt, nó cho phép cô lập các mối quan tâm ứng dụng riêng biệt cho phép kiểm tra đơn vị dễ dàng hơn.
Khi bạn đã sẵn sàng làm như vậy, nó sẽ là một thử nghiệm tích hợp kiểm tra toàn bộ hệ thống hoạt động cùng nhau. Trong một số trường hợp, điều này cũng có thể được viết bằng JUnit nhưng không nghĩ rằng đó là một bài kiểm tra đơn vị. Làm thế nào để làm điều này phụ thuộc vào hệ thống của bạn. Bạn có thể tải lên một bối cảnh Spring vào một bài kiểm tra JUnit hoặc bạn có thể triển khai ứng dụng và chạy các thử nghiệm đối với nó.
Loại thử nghiệm này thường được thực hiện bằng cách sử dụng khung làm giả như Mockito. Tạo một trình nghe giả, đăng ký nó với bus sự kiện, kích hoạt sự kiện và xác minh rằng phương thức nghe đã được gọi.
Tìm here một ví dụ rất cơ bản về cách tạo mô hình và cách xác minh tương tác với mô hình đó.
Tôi biết mockito, tôi không biết nó có thể được sử dụng trong các trường hợp như thế này. Tôi sẽ suy nghĩ về điều đó. nhiều thx. – speedingdeer
Không chắc chắn điều này sẽ làm việc - EventBus quét các đối tượng đã đăng ký cho một chú thích @Subscribe, có thể không có mặt trên đối tượng giả mạo. – PaulJWilliams
- 1. mùi thử nghiệm đơn vị
- 2. Icefaces thử nghiệm đơn vị
- 3. Thử nghiệm Đơn vị XNA
- 4. Thử nghiệm đơn vị sau khi thử nghiệm
- 5. Thử nghiệm đơn vị với số đơn
- 6. Thử nghiệm đơn vị thử nghiệm Javascript Sandbox
- 7. Nondeterminism trong thử nghiệm đơn vị
- 8. Tích hợp vs Thử nghiệm Đơn vị
- 9. Thử nghiệm đơn vị trên Android NDK
- 10. Thử nghiệm đơn vị trong CakePHP?
- 11. Đơn vị thử nghiệm Ứng dụng Firemonkey
- 12. Quy tắc thử nghiệm đơn vị
- 13. Thử nghiệm đơn vị với Spring Security
- 14. VS2012 không chạy thử nghiệm đơn vị
- 15. Đồ họa thử nghiệm đơn vị
- 16. Thử nghiệm dương tính và thử nghiệm âm tính trong thử nghiệm đơn vị
- 17. Thử nghiệm đơn vị sơ bộ
- 18. ZF2 authentication đơn vị thử nghiệm
- 19. rake không chạy thử nghiệm đơn vị
- 20. Đơn vị thử nghiệm chậm với Cobertura
- 21. Thử nghiệm đơn vị hộp đen
- 22. Đơn vị thử nghiệm IList với CollectionAssert
- 23. Thử nghiệm đơn vị dịch vụ web
- 24. Thử nghiệm đơn vị đa luồng
- 25. thử nghiệm đơn vị mô-đun javascript
- 26. Đơn vị thử nghiệm Jersey với Mocks
- 27. Chủ đề thử nghiệm đơn vị?
- 28. Thử nghiệm đơn vị với ServiceLocator
- 29. trình cài đặt thử nghiệm đơn vị
- 30. Thử nghiệm đơn vị với Oracle
Nếu mã của bạn có điều kiện xuất bản cho một EventBus, bạn cần để có thể xác minh rằng trong quá trình thử nghiệm của bạn, EventBus thực sự đã kích hoạt sự kiện mong muốn với các tham số chính xác. –