2017-01-25 21 views
9

Tôi đang sử dụng jest để kiểm tra thành phần reactJS của tôi. Trong thành phần reactJS của tôi, tôi cần phải sử dụng jquery UI, vì vậy tôi thêm này trong thành phần:reactjs jest jQuery không được xác định

var jQuery = require('jquery'); 
require('jquery-ui/ui/core'); 
require('jquery-ui/ui/draggable'); 
require('jquery-ui/ui/resizable'); 

Và nó làm việc tốt. Nhưng, bây giờ, tôi cần phải sử dụng jest để làm thử nghiệm, nhưng tôi ngay lập tức đáp ứng vấn đề này khi tôi tải các thành phần vào testutils,

Test suite failed to run 
ReferenceError: jQuery is not defined 

Có ai gặp vấn đề này nếu bạn đang sử dụng jQuery trong ứng dụng của bạn?

Cảm ơn

+0

bản sao có thể có của http://stackoverflow.com/questions/41800122/uncaught-referenceerror-jquery-is-not-defined-with-create-react-app/ –

+0

Bạn đã thử 'cửa sổ. $ = Require (' jquery '); '? – Tholle

Trả lời

18

Bạn có thể thêm jQuery phụ thuộc vào đối tượng toàn cầu của bạn. Làm như sau

  1. Trong package.json của bạn, dưới phím jest thêm setupFiles như thế này "setupFiles": ["test-env.js"]

  2. Trường hợp nội dung về kiểm tra-env.js trông như thế này

    import $ from 'jquery'; global.$ = global.jQuery = $;

Đảm bảo đường dẫn đến test-env là chính xác từ rootDir của bạn. rootDir có sẵn trong Jest.

+0

Câu trả lời này phù hợp hơn với bất kỳ người nào khác. chỉ một ghi chú trên rootDir, nó có thể được sử dụng như sau: " /test-env.js" thiết lập jest của tôi trông giống như folowing: "jest": { ... "setupFiles": [" /test-env.js "] } –

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