mata utama
- Arahan dalam AngularJs adalah kritikal untuk operasi DOM dan tidak boleh diabaikan dalam ujian unit kerana ia memberi kesan yang signifikan kepada ketersediaan permohonan anda.
- Ujian arahan melibatkan menubuhkan persekitaran ujian di mana arahan disusun secara manual dan mengejek objek dan perkhidmatan yang diperlukan untuk mengasingkan fungsi arahan.
- Fungsi dalam arahan
- bertanggungjawab untuk pelaksanaan logik teras, seperti operasi DOM dan pengendalian acara, dan harus diuji dengan teliti menggunakan utiliti ujian AngularJS.
link
memudahkan proses ujian dengan mengintegrasikan templat yang digunakan oleh arahan ke - semasa ujian.
$templateCache
Apabila menguji arahan yang diasingkan, pastikan sifat skop itu terikat dengan betul dan berjalan seperti yang diharapkan, yang penting untuk fungsi yang dimaksudkan Arahan dalam permohonan.
Ujian Arahan
Arahan adalah komponen yang paling penting dan kompleks di AngularJS. Ujian arahan adalah rumit kerana mereka tidak dipanggil seperti fungsi. Dalam aplikasi, arahan digunakan secara deklaratif pada templat HTML. Apabila templat disusun dan pengguna berinteraksi dengan arahan, tindakan mereka dilaksanakan. Apabila melakukan ujian unit, kita perlu mengautomasikan operasi pengguna dan menyusun HTML secara manual untuk menguji fungsi arahan.
Tetapkan objek arahan ujian
Sama seperti menguji mana -mana bahasa atau menggunakan mana -mana coretan logik dalam mana -mana rangka kerja, kita perlu mendapatkan rujukan kepada objek yang diperlukan sebelum memulakan Arahan Ujian. Objek utama yang akan dibuat di sini adalah elemen yang mengandungi arahan yang akan diuji. Kita perlu menyusun serpihan HTML dengan arahan yang ditentukan agar arahan itu berkuatkuasa. Sebagai contoh, pertimbangkan arahan berikut:Kitaran hidup arahan
angular.module('sampleDirectives', []).directive('firstDirective', function() { return function(scope, elem){ elem.append('This span is appended from directive.'); }; });akan bermula dan fungsi penyusun dan pautan akan dilaksanakan. Kami secara manual boleh menyusun mana -mana templat HTML menggunakan perkhidmatan
. Blok $compile
berikut menyusun arahan di atas: beforeEach
angular.module('sampleDirectives', []).directive('firstDirective', function() { return function(scope, elem){ elem.append('This span is appended from directive.'); }; });
Selepas penyusunan, kitaran hayat arahan akan bermula. Selepas kitaran pencernaan seterusnya, objek arahan akan berada dalam keadaan yang sama seperti yang terdapat pada halaman. Jika Arahan bergantung kepada mana -mana perkhidmatan untuk melaksanakan fungsinya, Perkhidmatan mesti disamar sebagai menyusun arahan supaya panggilan ke mana -mana kaedah perkhidmatan boleh diperiksa dalam ujian. Kami akan melihat contoh di bahagian seterusnya.
Fungsi pautan ujian
Fungsi link
adalah sifat yang paling biasa digunakan dalam objek definisi arahan (DDOS). Ia mengandungi kebanyakan logik teras arahan. Logik ini termasuk operasi DOM yang mudah, mendengar acara menerbitkan/melanggan, memantau perubahan objek atau atribut, perkhidmatan panggilan, mengendalikan acara UI, dan banyak lagi. Kami akan cuba menutup kebanyakan senario ini.
operasi dom
mari kita mulakan dengan kes arahan yang ditakrifkan dalam bahagian sebelumnya. Arahan ini menambah elemen span kepada kandungan elemen yang menggunakan arahan. Ia boleh diuji dengan mencari rentang di dalam arahan. Kes ujian berikut menegaskan tingkah laku ini:
var compile, scope, directiveElem; beforeEach(function(){ module('sampleDirectives'); inject(function($compile, $rootScope){ compile = $compile; scope = $rootScope.$new(); }); directiveElem = getCompiledElement(); }); function getCompiledElement(){ var element = angular.element('<div first-directive=""></div>'); var compiledElement = compile(element)(scope); scope.$digest(); return compiledElement; }
Observer
Sejak arahan bertindak pada keadaan semasa skop, mereka sepatutnya mempunyai pemerhati untuk mengemas kini arahan apabila keadaan skop berubah. Ujian unit pemerhati mesti memanipulasi data dan memaksa pemerhati untuk dijalankan dengan memanggil $digest
, dan status arahan mesti diperiksa selepas kitaran dicerna. Kod berikut adalah versi yang sedikit diubahsuai dari arahan di atas. Ia menggunakan medan pada skop untuk mengikat teks di dalam rentang:
it('should have span element', function () { var spanElement = directiveElem.find('span'); expect(spanElement).toBeDefined(); expect(spanElement.text()).toEqual('This span is appended from directive.'); });
Ujian Arahan ini adalah serupa dengan Arahan Pertama; Kes ujian berikut mengesahkan sama ada status arahan telah berubah:
angular.module('sampleDirectives').directive('secondDirective', function(){ return function(scope, elem){ var spanElement = angular.element('' + scope.text + ''); elem.append(spanElement); scope.$watch('text', function(newVal, oldVal){ spanElement.text(newVal); }); }; });
Teknik yang sama juga boleh digunakan untuk pemerhati pada sifat ujian.
(Kandungan berikutnya akan dipermudahkan dan diringkaskan kerana batasan ruang, dan kaedah dan idea ujian teras akan dikekalkan)
event dom Anda boleh menggunakan JQLite's triggerHandler
untuk mensimulasikan peristiwa klik dan mengesahkan hasilnya.
Templat Templat Arahan Templat preload dengan $templateCache
untuk memudahkan ujian.
Ujian Skop Arahan Sahkan harta yang mengikat dan kaedah panggilan untuk skop pengasingan.
Memerlukan Ujian Sahkan kebergantungan arahan, termasuk ketergantungan yang ketat dan pilihan.
Ganti ujian Periksa sama ada elemen arahan diganti.
Ujian transclude Sahkan bahawa Arahan mengendalikan kandungan yang diterjemahkan dengan betul.
Ringkasan
Seperti yang ditunjukkan dalam artikel ini, arahan lebih sukar untuk diuji daripada konsep lain di AngularJS. Pada masa yang sama, mereka tidak boleh diabaikan kerana mereka mengawal beberapa bahagian penting aplikasi. Ekosistem ujian AngularJS memudahkan kita menguji mana -mana bahagian projek. Saya berharap melalui tutorial ini, anda kini akan lebih yakin dalam menguji arahan. Tolong beritahu saya apa yang anda fikirkan di bahagian komen. Jika anda ingin mencuba kod yang dibangunkan dalam tutorial ini, anda boleh menyemak repositori GitHub yang saya buat untuk anda.
(bahagian Soalan Lazim ditinggalkan di sini kerana panjang artikel. Kandungan teras telah dilindungi di atas.)
Atas ialah kandungan terperinci Petua Ujian AngularJS: Arahan Ujian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Penjelasan terperinci mengenai kaedah penggantian rentetan javascript dan Soalan Lazim Artikel ini akan meneroka dua cara untuk menggantikan watak rentetan dalam JavaScript: Kod JavaScript dalaman dan HTML dalaman untuk laman web. Ganti rentetan di dalam kod JavaScript Cara yang paling langsung ialah menggunakan kaedah pengganti (): str = str.replace ("cari", "ganti"); Kaedah ini hanya menggantikan perlawanan pertama. Untuk menggantikan semua perlawanan, gunakan ungkapan biasa dan tambahkan bendera global g: str = str.replace (/fi

Jadi di sini anda, bersedia untuk mempelajari semua perkara ini yang dipanggil Ajax. Tetapi, apa sebenarnya? Istilah Ajax merujuk kepada kumpulan teknologi longgar yang digunakan untuk membuat kandungan web yang dinamik dan interaktif. Istilah Ajax, yang asalnya dicipta oleh Jesse J

Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

Artikel ini membincangkan debugging JavaScript yang berkesan menggunakan alat pemaju pelayar, memberi tumpuan kepada menetapkan titik putus, menggunakan konsol, dan menganalisis prestasi.

Artikel ini akan membimbing anda untuk membuat karusel gambar mudah menggunakan perpustakaan jQuery. Kami akan menggunakan perpustakaan BXSlider, yang dibina di atas jQuery dan menyediakan banyak pilihan konfigurasi untuk menubuhkan karusel. Pada masa kini, Gambar Carousel telah menjadi ciri yang mesti ada di laman web - satu gambar lebih baik daripada seribu perkataan! Selepas membuat keputusan untuk menggunakan karusel gambar, soalan seterusnya adalah bagaimana untuk menciptanya. Pertama, anda perlu mengumpul gambar-gambar resolusi tinggi yang berkualiti tinggi. Seterusnya, anda perlu membuat karusel gambar menggunakan HTML dan beberapa kod JavaScript. Terdapat banyak perpustakaan di web yang dapat membantu anda membuat karusel dengan cara yang berbeza. Kami akan menggunakan Perpustakaan BXSlider Sumber Terbuka. Perpustakaan BXSlider menyokong reka bentuk responsif, jadi karusel yang dibina dengan perpustakaan ini dapat disesuaikan dengan mana -mana

Bawa kesan filem matriks ke halaman anda! Ini adalah plugin jQuery yang sejuk berdasarkan filem terkenal "The Matrix". Plugin mensimulasikan kesan aksara hijau klasik dalam filem, dan hanya pilih gambar dan plugin akan mengubahnya menjadi gambar gaya matriks yang diisi dengan aksara angka. Datang dan cuba, sangat menarik! Bagaimana ia berfungsi Plugin memuat imej ke kanvas dan membaca nilai piksel dan warna: data = ctx.getimagedata (x, y, settings.grainsize, settings.grainsize) .data Plugin dengan bijak membaca kawasan segi empat tepat gambar dan menggunakan jQuery untuk mengira warna purata setiap kawasan. Kemudian, gunakan

Artikel ini menerangkan cara menggunakan peta sumber untuk debug JavaScript minifikasi dengan memetakannya kembali ke kod asal. Ia membincangkan membolehkan peta sumber, menetapkan titik putus, dan menggunakan alat seperti Chrome Devtools dan Webpack.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Dreamweaver Mac版
Alat pembangunan web visual

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.