2012-03-01 50 views
5

Được cung cấp: mã javascript phía máy khách (chạy trong trình duyệt, sử dụng jquery v.v.). Hiện tại, mã được kiểm tra với Rhinoenvjs. Chúng tôi muốn chuyển sang node.js. Tuy nhiên, sau một số nghiên cứu, không thể tìm thấy bất kỳ phần bổ sung nào giống như một trình duyệt giả lập envjs.Kiểm tra mã JavaScript phía máy khách với Jasmine và node.js

Trong khi chạy node.js "nguyên trạng", ngay cả các khả năng cơ bản như thiếu alert() hoặc window đều bị thiếu.

Có gói chuẩn nào, tương tự như Rhino & envjs cho node.js không?

+0

Đây là một phần rất kém phát triển của phần mềm. Đem cho tôi mãi mãi để tìm một cách để chạy thử nghiệm JS của tôi với các thử nghiệm khác của tôi trong Visual Studio. – Zoidberg

Trả lời

9

Bạn có thể sử dụng zombie.js, trong đó có mọi thứ bạn cần để thử nghiệm. Hoặc bạn có thể tận dụng jsdom (mà zombie.js sử dụng trong nội bộ) để có được một DOM trong node.js và thực hiện các thử nghiệm của bạn dựa vào DOM đó.

Tôi cũng có thể đề xuất testling, thực hiện kiểm tra theo đặc điểm kỹ thuật của bạn trong tất cả các trình duyệt thông thường - mã đang chạy trong các trình duyệt thực tế đối với dịch vụ của bạn.

Dưới đây là một ví dụ đơn giản với jsdom:

var jsdom = require("jsdom"); 

jsdom.env(url, ["http://code.jquery.com/jquery.min.js"], function(err, window) { 
    // jQuery is at window.$ 
}); 

Thay vì url ở trên, bạn có thể có một tài liệu HTML, hoặc mảnh.

Bạn cũng có thể tải một trang và lấy bất kỳ nguồn lực bên ngoài, thay vì cung cấp jQuery vv trực tiếp đến jsdom:

var jsdom = require("jsdom").jsdom, 
    doc = jsdom(markup), 
    window = doc.createWindow(); 

// Do your stuff on window, jsdom will have fetched all the scripts referenced in the markup 

Một lần nữa, zombie.js sử dụng jsdom nội bộ và nó có thể là một điểm khởi đầu tốt hơn.

+0

Bạn tiêu thụ bao nhiêu phút thử nghiệm như thế nào? Tôi luôn lo lắng rằng tôi sẽ chạy thử nghiệm của tôi "quá nhiều" và tiêu thụ "quá nhiều" phút – Raynos

+0

Raynos: Tôi thực sự đã thử nó. Tôi sắp sửa tung ra thị trường và ngay khi công việc kinh doanh diễn ra, tôi chắc chắn rằng việc kiểm tra sẽ rất đáng giá, vì tôi ghét kiểm tra trình duyệt thủ công. :-) –

2

Có hai lựa chọn cho

  1. trình duyệt mã kiểm tra của bạn này. Chạy nó trong trình duyệt. Giả lập trình duyệt không chứng minh mã của bạn hoạt động.
  2. Sử dụng một công cụ như phantom/zombie

Tất nhiên có những lựa chọn thay thế vào đó, bạn có thể trích xuất bất kỳ phi trình duyệt mã liên quan, hãy viết một bộ phận kiểm tra cho họ và chạy nó trong nút. Nó chỉ là JavaScript.

Bạn cũng có thể sử dụng dịch vụ quản lý như testling để chạy thử nghiệm trình duyệt của bạn cho bạn

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