2016-10-13 22 views
10

benim Eğik 2 proje için Açısal-CLI (webpack versiyonu) kullanıyorum ve ayrıca jQuery kullanmak gerekir (ne yazık ki. Benim durumumda, bu Semantik-UI bir bağımlılık ve ben menü açılır listesini işlemek için bunu kullanıyorum).Açısal 2 ve jQuery - nasıl test edilir?

yolu bunu kullanıyorum:

Sonra
npm install jquery --save 

içinde scripts dizide angular-cli.json dosyayı listeleme:

scripts": [ 
    "../node_modules/jquery/dist/jquery.min.js" 
] 
Yani

o paket dosyasına dahil olur ve bu dosya otomatik kullanılır kök html dosyası:

( )

O zaman ihtiyacım olan dosyalarda declare var $: any; ve iyi çalışıyor. Karma, $ is not defined hata bildirdiği için ng test testleri ile ilgili bir sorun var.

+0

nasıl bileşen spec jQuery dahil oldu? Aynı hatayı alıyorum ve jQuery'yi karma.conf.js dosyasındaki dosya dizisine dahil etmeye çalıştım. –

cevap

18

normalde servis versiyonu olduğu gibi Karma tarafından sağlanan test html dosyası, scripts.bundle.js dosyayı içermez olmasıdır.

çözümü kolay olduğu; jquery dosyasına aynı yolu, projenin kök klasöründeki karma.config.js dosyasına dahil edersiniz. Bu dosya projenin kökünde bulunur.

files dizide, böyle watched bayrağıyla yolunu ekleyin:

files: [ 
    { pattern: './node_modules/jquery/dist/jquery.min.js', watched: false },  
    { pattern: './src/test.ts', watched: false } 
] 

Karma şimdi jQuery bağımlılık hakkında bilmeli.

+0

Vaay, kaldır ben aynı hattan 2 gün, sadece kaldırıldı "dahil" bayrağını yapmaya çalıştığım şey bir adım oldu ve işe yaradı! Bu kodu jQuery ('# confirmDialogModal') kullandığımda – Ayyash

+0

modal ('gizle') ;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,. ayrıca jQuery ('# facilityIdModalButton'). click(); Test senaryoları çalışırken herhangi bir atış atmaz. jquery çağrılarını düzeltmek veya atlamak için herhangi bir fikir –