2011-10-06 34 views
7

Tôi đang làm việc trên ứng dụng nodejs. Tôi quản lý để phá vỡ một số mã trong các mô-đun riêng biệt, rằng tôi đang thử nghiệm bằng cách sử dụng nodeunit, nhưng một phần đáng kể của cơ sở mã của tôi vẫn dựa trên socket.io.Kiểm tra sự kiện socket.io

Tôi làm cách nào để kiểm tra các sự kiện socket.io của mình?

+0

Bài viết được liên kết đầy đủ hay bạn đã chọn cách tiếp cận khác? – Andy

+0

Cảm ơn bạn đã hỏi. Bài viết có vẻ ok, nhưng tôi không hoàn toàn chắc chắn đây là con đường để đi. Theo như tôi có thể nói liên kết bạn cung cấp kiểm tra những gì máy chủ đang gửi, nhưng logic trong mã của tôi thực sự thực hiện rất nhiều thứ trong chương trình phụ trợ mà không hiển thị ngay cho khách hàng. Như tôi đã đề cập, tôi đã chuyển một số thành các mô-đun độc lập, nhưng vẫn còn một số phần chưa được kiểm tra mà tôi sợ sẽ thất bại một cách thầm lặng khi tôi ít chờ đợi chúng trong tương lai không lường trước được. Vì vậy, trong khi tôi vẫn có thể đưa ra giải pháp mà bạn đã cung cấp cho tôi, tôi cảm thấy có rất nhiều công việc cần thiết. – vise

+0

Âm thanh như một ứng cử viên tốt cho điệp viên của Jasmine - câu trả lời được cập nhật. – Andy

Trả lời

8

Thử bài viết này: Socket.IO and Asynchronous Testing with node.js.

Vì vậy, giả tạo. Ý tôi là, hãy tạo ra các phiên bản giả mạo của các máy chủ của contender cũng như trình khách trực quan hóa. Sau đó, chúng tôi sẽ xây dựng một bộ thử nghiệm sử dụng những hàng giả này để kiểm tra ổ đĩa máy chủ thực tế mà chúng tôi đang phát triển . Tôi sẽ dán một số đoạn mã hơi đơn giản ở đây ví dụ. Nếu bạn thực sự quan tâm đến nội dung, bạn sẽ tìm thấy nó tất cả trên Github.

chỉnh sửa: nếu bạn cần phải kiểm tra chức năng mà không có đầu ra mắt, Jasmine BDD cung cấp spies. Đây có thể được sử dụng để "nhìn thấy bên trong" một chức năng và kiểm tra xem các thông số nhất định được thông qua vv, và có ích cho việc chế giễu các cuộc gọi không đồng bộ để thử nghiệm, cũng như viết bài kiểm tra chức năng hơn:

Jasmine Spies đang thử nghiệm tăng gấp đôi mà có thể hoạt động như cuống, gián điệp, hàng giả hoặc khi được sử dụng trong một lần truy cập, mocks ... Các gián điệp có thể được kiểm tra nếu chúng là được gọi hay không và các tham số gọi là gì. Một Spy có các trường sau: : isCalled, callCount, mostRecentCall và argsForCall (xem tài liệu). Các điệp viên bị rách nát vào cuối mỗi thông số.

Docs, an articlerelated SO question.

+0

Cảm ơn, tôi sẽ xem xét nó. – vise

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