2017-01-25 39 views
9

reactJS bileşenimi test etmek için jest yapıyorum. Benim reactJS bileşeninde , ben jquery UI kullanmak gerekir, bu yüzden bileşeninde bu ekledi:reactjs jest jQuery tanımlı değil

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

Ve iyi çalıştı. Ancak sizin de app jQuery kullanıyorsanız

Test suite failed to run 
ReferenceError: jQuery is not defined 

kimse bu konuyu görüştü Has şimdi ben test yapmaya jest kullanılan gerekir, ama testutils içine bileşeni yüklediğinizde ben hemen bu sorunu karşılamak?

Teşekkür

+0

http://stackoverflow.com/questions/41800122/uncaught-referenceerror-jquery-is-not-defined-with-create-react-app/ –

+0

olası kopyasına bakın Pencereyi denediniz mi? $ = Require (' jQuery ');'? – Tholle

cevap

18

Sen küresel nesnede jQuery bağımlılık ekleyebilir. Test-env.js üzerinde içeriği bu

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

benziyor Nerede bu "setupFiles": ["test-env.js"]

  • gibi setupFiles eklemek jest anahtarının altında, sizin package.json aşağıdaki

    1. yapın

    Test-env yolunun rootDir'inizden doğru olduğundan emin olun. rootDir Jest'te kullanılabilir.

  • +0

    Bu cevap benim için başkalarından daha iyi çalıştı. şöyle RootDir sadece bir not, kullanılabilir: "jest": { ... "setupFiles": [" " /test-env.js" benim jest kurulum folowing benziyordu /test-env.js "] } –