2012-06-13 30 views
10

Tôi đang tìm cách chuyển đổi từ các bài kiểm tra Jasmine sang bài kiểm tra Mocha vì khả năng thực hiện trước (tất cả), khả năng báo cáo và hỗ trợ cho bản ghi.Đồ đạc tương thích với Mocha hỗ trợ

Một điều tôi chưa thể tìm thấy là liệu Mocha (hoặc kết hợp với thư viện xác nhận tương thích) có hỗ trợ các đồ đạc như jasmine-jquery không (https://github.com/velesin/jasmine-jquery). Chức năng này có tồn tại cho Mocha không?

Tôi đang thử nghiệm một số mã trong trình duyệt (vì vậy tôi sẽ chạy mã đó với trình kiểm tra html) để điều khiển DOM. Tôi không muốn sử dụng zombiej vì tôi muốn chạy nó trong môi trường mà tôi đang thử nghiệm.

Chỉnh sửa: Chỉ để tham khảo, trong khi tìm kiếm giải pháp, tôi bắt gặp sử dụng grunt + mocha với phantomjs thực hiện. Điều này cũng không hoạt động đối với trường hợp của tôi vì tôi muốn sử dụng phiên bản webkit tùy chỉnh.

Trả lời

10

Từ những gì tôi đã có thể tìm ra, câu trả lời là không. Điều này có thể là do thực tế là Mocha có nghĩa là hỗ trợ node.js. Trong nút, khái niệm đồ đạc trong jasmine-jquery không tồn tại vì DOM/trình duyệt không tồn tại.

Nhìn vào các đồ đạc hỗ trợ cho các plugin jasmine-jquery, tôi nhận ra bây giờ có thể không quá khó để xây dựng chức năng này bản thân mình. Cơ chế cơ bản là sử dụng jQuery để thêm một mẫu bên ngoài vào DOM, trong khi vẫn giữ lại các tham chiếu đến DOM để có thể dọn dẹp và lưu bộ nhớ đệm.

tôi sẽ cập nhật câu trả lời này nếu tôi quyết định phát hành một cái gì đó trên github

Chỉnh sửa: ở đây nó là - https://github.com/badunk/js-fixtures. Mã và thông số cơ bản được sao chép từ jasmine-jquery với các phụ thuộc được loại bỏ.

+0

Các đồ đạc js cũng sao chép tải JSON, như 'getJSONFixture()' trong jasmine-jquery? –

+0

không, hiện không được hỗ trợ - Tôi sẽ xem nó như là một phụ kiện. Sự chào đón của PR: https://github.com/badunk/js-fixtures/issues/12 – badunk

+0

Đây có phải là trường hợp không? Có chức năng thiết lập và teardown trong Mocha và chúng hỗ trợ chạy thử nghiệm trong trình duyệt. – Indolering

0

Bạn đã thử zombie.js? Nó cài đặt với NPM và có vẻ khá bất khả tri để kiểm tra khung.

Điều này đã cho tôi một đối tượng cửa sổ đầy đủ chức năng mà tôi có thể trang trí bằng jQuery.

Browser = require 'zombie' 

browser = new Browser() 
global.window = browser.window 
require '../src/js/vendor/jquery-1.7.1.min.js' 

UPDATE:

Tôi đã xem xét lại vấn đề này và có vẻ như jquery + jsdom (thông qua NPM) dường như là một giải pháp phổ biến hơn và trọng lượng nhẹ. Ví dụ: http://www.netboy.pl/2012/10/testing-jquery-code-with-mocha-chai-and-jsdom/

+0

Liên kết không còn hoạt động. – CodingWithSpike

+0

JSDOM và Zombie có chút rắc rối. Ví dụ: không hỗ trợ cho 'classList',' dataset' và một loạt các thứ khác mà tôi muốn sử dụng. Có vẻ tôi sẽ quay trở lại với những bóng ma với cái này. –

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