Bagaimana cara mengkonfigurasi Jasmine di lingkungan Rails 6 (di mana Webpack mengganti pipeline aset untuk Javascript) sehingga saya dapat menguji modul Javascript yang saya tulis untuk aplikasi saya?
Saya memasang permata melati, berlari rails generate jasmine:install
, dan diedit jasmine.yml
untuk menunjuk ke lokasi sumber dan spesifikasi Javascript saya.
Masalahnya adalah saya tidak bisa menggunakan pernyataan impor / ekspor. (Misalnya, mencoba untuk memuat modul pertama saya ke hasil tes dalam kesalahan ini di Chrome: Uncaught SyntaxError: Unexpected token 'export'
)
Dari apa yang bisa saya katakan, saya perlu mengatur Jasmine untuk menggunakan babel; tapi, saya tidak beruntung menemukan instruksi tentang cara melakukan ini di layout Rails 6 yang baru.
Jawaban:
Ya kau benar. Masalah utama
jasmine-gem
adalah bahwa itu tidak menyalurkan spec melalui babel. Biarkan saya memposting solusi tercepat untuk masalah Anda dan setelah itu, saya akan memikirkan kemungkinan implementasi dari pendekatan serupa dijasmine-gem
.Gagasan utamanya adalah menyalurkan spesifikasi melalui webpack rel selama ia memiliki semua konfigurasi babel yang diperlukan.
jasmine-core
karena kami tidak akan menggunakanjasmine-gem
dalam solusi iniSekarang buat dua paket webpack tambahan. Satu untuk Jasmine dan hanya akan berisi Jasmine dan pelari ujian
Dan yang kedua untuk kode aplikasi Anda dan spesifikasi
Perhatikan jalan
'../javascripts'
dan Anda'../spec'
. Bagi saya itu terlihat seperti'../../assets/javascripts'
dan dengan'../../../spec'
hormat.Kemudian tambahkan Webpack ProvidPlugin untuk Jasmine (tambahkan kode ini ke
config/webpack/environment.js
)Tambahkan halaman pelari Jasmine ke aplikasi Anda
/jasmine
ruteJawaban ini disiapkan berdasarkan posting ini , namun, saya telah memeriksa kembali instruksi pada ruby 2.6.3, rail 6.0.2, menambahkan perubahan yang sesuai pada rekomendasi dan membuktikan bahwa ini berhasil.
Tolong, beri tahu saya jika jawaban saya bermanfaat bagi Anda atau Anda memerlukan informasi tambahan. Namun, saya akan bekerja pada solusi yang akan berhasil dengan
jasmine
gem atau implementasi serupa.sumber
bootstrap.min.js
- tiba ada kesalahan yang pada dasarnya berartijquery
tidak dimuat sebelumnyabootstrap
. Namun,] Saya tidak dapat menemukan apa dalam kode ini yang mengubah urutan pemuatan JS ... terutama karena bootstrap saya dimuat melalui CDN dalam tata letak aplikasi setelahjavascript_pack_tag 'application'
baris dan sayaapplication.js
sudah punyarequire('jquery')
. Jika Anda memiliki pengaturan ini di lingkungan lokal, dapatkah Anda memuat bootstrap melalui CDN dalam tata letak aplikasi, dan melihat apakah itu berfungsi?