2014-04-06 21 views
12

Tôi bắt đầu sử dụng Node.js và đang tìm kiếm một khuôn khổ thử nghiệm.Sự khác nhau giữa mocha và Selenium là gì?

tôi thấy:

  • Mocha
  • Selenium

Tôi hiểu rằng với Mocha người ta có thể viết các bài kiểm tra trong JS trong khi với Selenium, người ta phải viết bài kiểm tra với các ngôn ngữ cấp thấp như C#.

Ngoài ra, có điều gì đó mà Selen có thể làm mà Mocha không thể?

Bản thân Mocha sử dụng những gì?

Trả lời

25

Mocha và Selenium đều xử lý phần mềm kiểm tra nhưng chúng giải quyết các vấn đề khác nhau.

Mocha là khung chạy thử nghiệm. Bạn cho Mocha biết bạn có những thử nghiệm nào và thử nghiệm nào bạn muốn chạy và mocha sẽ chạy thử nghiệm của bạn và báo cáo những thử nghiệm đã qua và những thử nghiệm không thành công. Bản thân Mocha cung cấp một khung chạy thử nghiệm. Thông thường, bạn sẽ muốn sử dụng thư viện xác nhận với thư viện, chẳng hạn như Chai. Tôi có các phòng thử nghiệm, nơi các thư viện duy nhất cung cấp hỗ trợ kiểm tra là Mocha cùng với Chai. Đây là trường hợp sử dụng hoàn toàn khả thi.

Selen là thư viện để kiểm soát trình duyệt. Một phần quan trọng trong phạm vi của nó là thử nghiệm phần mềm dựa trên trình duyệt. Tuy nhiên, nó cũng có thể được sử dụng để cạo các trang web. Đây là điều mà Selenium có thể làm mà Mocha không thể tự làm được. Ngược lại, Selenium không phải là một khung chạy thử nghiệm. Selenium không có phương tiện chuyên dùng để phân định các thử nghiệm và chỉ chạy thử nghiệm cụ thể. Bạn phải dựa vào một khung chạy thử nghiệm như Mocha để phân định một thử nghiệm từ một thử nghiệm khác.

Nếu bạn muốn viết bộ thử nghiệm kiểm tra ứng dụng dựa trên trình duyệt, bạn có thể sử dụng Mocha cùng với Selenium. Hoặc Jasmine (một khung chạy thử nghiệm khác) với Selenium. Hoặc bạn có thể sử dụng Behave (một thử nghiệm dựa trên Python) cùng với Selenium. Hoặc bạn có thể sử dụng Mocha cùng với một số thư viện khác điều khiển trình duyệt.

câu hỏi cụ thể này cần điều trị đặc biệt:

Tôi hiểu rằng với Mocha người ta có thể viết các bài kiểm tra trong JS trong khi với Selenium, người ta phải viết bài kiểm tra với các ngôn ngữ cấp thấp như C#.

Tôi sẽ không gọi C# là ngôn ngữ cấp thấp hơn. Ở mức nào, sử dụng Mocha bạn phải sử dụng JavaScript. (Có một thư viện thử nghiệm cho Ruby cũng được đặt tên là "Mocha" nhưng đó không phải là phiên bản Ruby của JavaScript. Tôi giả sử bạn đang nói về JavaScript, điều này làm cho phản ứng của tôi trở nên căng thẳng nhưng chúng tôi ở đây.) Bạn có thể sử dụng Selenium với JavaScript, Python, C#, Java và một loạt các ngôn ngữ khác.

+1

Tại sao các thử nghiệm không được phân tách bằng Selenium? Tôi chỉ cần cài đặt trình điều khiển web Selenium, tạo ra một loạt các tệp thử nghiệm, mỗi tệp thử nghiệm và chạy chúng tuần tự ('kiểm tra nút .js'). – batman

+4

Nó không phải là họ không thể được phân cách, thời gian. Đó là * Selenium * không cung cấp phương tiện để làm như vậy. Không có API để nói với Selenium "đây là một thử nghiệm", "đây là một thử nghiệm khác". Nếu bạn phân chia các bài kiểm tra của mình trong nhiều tệp, bạn không nói cho * Selenium * "chạy thử nghiệm này". Bạn nói với * Node * "chạy tệp này." Mocha, mặt khác biết thử nghiệm là gì. – Louis

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