2013-05-07 26 views

Trả lời

14

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ó.

+2

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. –

2

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 đó.

+0

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

+2

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