


Uji program halaman AngularJS menggunakan Jasmine dan Karma_node.js
AngularJS ialah perkara terbaik yang berlaku kepada JavaScript sejak jQuery. Ini adalah cara pembangunan JavaScript sentiasa dimaksudkan. Salah satu kelebihan utama Angular ialah suntikan kebergantungannya (Suntikan Ketergantungan), yang sangat mudah untuk ujian unit kod. Tapi yang pelik sikit saya tak jumpa tutorial macam mana nak buat unit testing.
Sudah tentu terdapat banyak cadangan yang baik: menggunakan rangka kerja ujian Jasmine dan pelaksana ujian Karma (Test Runner); tetapi tiada tutorial lengkap tentang cara menguji dari awal. Jadi saya menulis artikel ini. Saya menemui banyak sumber dalam talian untuk mengetahui cara melakukannya, dan anda tidak perlu melakukan apa-apa daripada itu sekarang (jika anda membaca artikel ini dari awal).
Sila beritahu saya sebarang ralat yang anda lihat sehingga saya boleh mengatakan ini adalah amalan terbaik untuk menguji apl Angular berdasarkan Karma dan Jasmine.
Pengenalan
Artikel ini akan membimbing anda untuk memasang semua alatan yang anda perlukan untuk menggunakan Karma dan Jasmine untuk ujian automatik. Saya tidak kisah jika anda benar-benar menggunakan TDD (Test Driven Development) atau TAD (Test Assisted Development), untuk tujuan artikel ini saya mengandaikan anda sudah mempunyai fail untuk diuji.
Pasang Karma
Jika anda tidak memasang Node.js, sila muat turun dan pasang sendiri. Selepas pemasangan, buka terminal atau baris arahan dan masukkan arahan:
1 |
|
Struktur fail
Struktur fail tidak berkait rapat dengan topik kami, tetapi dalam ujian berikut, struktur fail yang saya gunakan adalah seperti berikut:
1 2 3 4 5 6 7 8 9 10 |
|
*Saya tidak menyokong struktur dokumen ini, saya menunjukkannya hanya sebagai contoh ujian.
Konfigurasikan Karma
Tukar ke direktori di mana anda ingin meletakkan fail konfigurasi, kemudian masukkan arahan berikut dalam terminal untuk mencipta fail konfigurasi:
1 |
|
Anda akan ditanya beberapa soalan, termasuk rangka kerja ujian yang ingin anda gunakan, sama ada anda memerlukan fail pemantauan automatik, ujian dan fail yang diuji yang disertakan, dsb. Dalam tutorial kami, kami mengekalkan 'Jasmine' sebagai rangka kerja lalai kami, mendayakan pengesanan fail automatik dan memasukkan fail berikut:
1 2 3 4 |
|
Ini adalah laluan relatif, termasuk 1) semua fail .js dalam direktori induk, 2) semua fail .js dalam semua subdirektori di bawah direktori induk, 3) angular-mock.js dalam direktori semasa, 4) Dan semua Fail .tests.js dalam direktori semasa (termasuk subdirektori) (Saya suka membezakan fail ujian daripada fail lain dengan cara ini).
Tidak kira apa fail yang anda pilih, pastikan anda memasukkan angular.js, angular-mock.js dan fail lain yang perlu anda gunakan.
Mulakan Karma
Kini anda boleh mulakan Karma, masih masuk ke terminal:
1 |
|
Arahan ini akan melancarkan penyemak imbas yang anda senaraikan dalam fail konfigurasi pada komputer anda. Penyemak imbas ini akan menyambung ke contoh Karma melalui soket Anda akan melihat senarai penyemak imbas yang aktif dan dimaklumkan sama ada mereka menjalankan ujian. Saya harap Karma memberi anda ringkasan keputusan ujian akhir pada setiap penyemak imbas (cth. 15 daripada 16 lulus, 1 gagal), tetapi malangnya anda hanya boleh melihat maklumat ini melalui tetingkap terminal.
Salah satu ciri Karma yang menonjol ialah anda boleh menyambung dan menguji kod anda menggunakan mana-mana peranti pada rangkaian. Cuba halakan penyemak imbas mudah alih anda ke perkhidmatan Karma Anda boleh menemui URL ujian dalam mana-mana penyemak imbas yang dijalankan pada komputer anda. Ia sepatutnya kelihatan seperti: http://localhost:9876/?id=5359192. Anda boleh menghalakan penyemak imbas telefon anda, mesin maya atau mana-mana peranti lain ke [alamat IP anda pada rangkaian]:9876/?id=5359192 Kerana Karma menjalankan contoh Node.js, mesin ujian anda Sama seperti web pelayan, ujian akan dihantar ke mana-mana penyemak imbas yang ditunjukkan kepadanya.
Ujian asas
Kami menganggap anda sudah mempunyai fail untuk diuji. Fail home.js yang ingin kami gunakan adalah seperti berikut:
home.js
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Kami boleh mencipta kes ujian kami dalam fail home.test.js. Mari kita mulakan dengan ujian mudah: $scope.text sepatutnya sama dengan 'Hello World!'. Untuk melengkapkan ujian ini, kami perlu mengejek modul Aplikasi kami dan pembolehubah $scope. Kami akan melakukan ini dalam kaedah beforeEach Jasmine supaya kami mempunyai pengawal dan objek skop yang baharu (bersih) pada permulaan setiap kes ujian.
home.tests.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
Anda boleh melihat daripada kod bahawa kami menyuntik skop kami sendiri supaya kami boleh mengesahkan maklumatnya di luarnya. Juga, jangan lupa untuk mengejek modul itu sendiri (baris 7)! Kami kini bersedia untuk ujian:
home.tests.js
1 2 3 4 |
|
如果你运行这个测试,它可以在任何指向Karma的浏览器中执行,并且测试通过。
发送$resource请求
现在我们已经准备好测试 $resource 请求。要完成这个请求,我们需要使用到 $httpBackend, 它一个模拟版本的Angular $http。我们会创建另一个叫做 $httpBackend 的变量,在第二个 beforEach块中,注入 _$httpBackend_ 并将新创建的变量指向 _$httpBackend_。接下来我们会告诉 $httpBackend 如何对请求做出响应。
1 2 |
|
我们的测试: home.tests.js
1 2 3 4 5 |
|
都放到一起
home.tests.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
技巧
Karma会运行所有文件中的所有测试用例,如果你只想运行所有测试的一个子集,修改 describe 或 it 为 ddescribe 或 iit 来运行个别的一些测试。如果有些测试你不想运行他们,那么修改 describe 或 it 为 xdescribe 或 xit 来忽略这些代码。
你也可以在html文件的页面上运行你的测试。举例的代码如下:
home.runner.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|

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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah pendapat anda tentang furmark? 1. Tetapkan "Mod Jalankan" dan "Mod Paparan" dalam antara muka utama, dan juga laraskan "Mod Ujian" dan klik butang "Mula". 2. Selepas menunggu seketika, anda akan melihat keputusan ujian, termasuk pelbagai parameter kad grafik. Bagaimanakah furmark layak? 1. Gunakan mesin pembakar furmark dan semak hasilnya selama kira-kira setengah jam Ia pada asasnya berlegar sekitar 85 darjah, dengan puncak 87 darjah dan suhu bilik 19 darjah. Casis besar, 5 port kipas casis, dua di hadapan, dua di atas, dan satu di belakang, tetapi hanya satu kipas dipasang. Semua aksesori tidak overclock. 2. Dalam keadaan biasa, suhu biasa kad grafik hendaklah antara "30-85℃". 3. Walaupun suhu ambien terlalu tinggi pada musim panas, suhu biasa ialah "50-85℃"

Teknologi pengesanan dan pengecaman muka adalah teknologi yang agak matang dan digunakan secara meluas. Pada masa ini, bahasa aplikasi Internet yang paling banyak digunakan ialah JS Melaksanakan pengesanan muka dan pengecaman pada bahagian hadapan Web mempunyai kelebihan dan kekurangan berbanding dengan pengecaman muka bahagian belakang. Kelebihan termasuk mengurangkan interaksi rangkaian dan pengecaman masa nyata, yang sangat memendekkan masa menunggu pengguna dan meningkatkan pengalaman pengguna termasuk: terhad oleh saiz model, ketepatannya juga terhad. Bagaimana untuk menggunakan js untuk melaksanakan pengesanan muka di web? Untuk melaksanakan pengecaman muka di Web, anda perlu biasa dengan bahasa dan teknologi pengaturcaraan yang berkaitan, seperti JavaScript, HTML, CSS, WebRTC, dll. Pada masa yang sama, anda juga perlu menguasai visi komputer yang berkaitan dan teknologi kecerdasan buatan. Perlu diingat bahawa kerana reka bentuk bahagian Web

"Ujian Inaction" bagi MMORPG dongeng fantasi baharu "Zhu Xian 2" akan dilancarkan pada 23 April. Apakah jenis kisah pengembaraan dongeng baharu yang akan berlaku di Benua Zhu Xian beribu-ribu tahun selepas karya asal? The Six Realm Immortal World, akademi abadi sepenuh masa, kehidupan abadi percuma, dan semua jenis keseronokan di dunia abadi sedang menunggu rakan-rakan abadi untuk meneroka secara peribadi! Pra-muat turun "Wuwei Test" kini dibuka Rakan-rakan Fairy boleh pergi ke laman web rasmi untuk memuat turun Anda tidak boleh log masuk ke pelayan permainan sebelum pelayan dilancarkan sudah selesai. Waktu pembukaan "Zhu Xian 2" "Inaction Test": 23 April 10:00 - 6 Mei 23:59 Bab pengembaraan dongeng baharu sekuel ortodoks kepada Zhu Xian "Zhu Xian 2" adalah berdasarkan novel "Zhu Xian" sebagai cetak biru Berdasarkan pandangan dunia karya asal, latar belakang permainan ditetapkan

"Operation Delta" akan melancarkan ujian PC berskala besar yang dipanggil "Codename: ZERO" hari ini (7 Mac). Hujung minggu lalu, permainan ini mengadakan acara pengalaman flash mob luar talian di Shanghai, dan 17173 juga bertuah kerana dijemput untuk mengambil bahagian. Ujian ini hanya tinggal lebih empat bulan lagi daripada kali terakhir, yang membuatkan kami tertanya-tanya, apakah sorotan dan kejutan baharu yang akan dibawa oleh "Operasi Delta" dalam tempoh yang singkat? Lebih empat bulan yang lalu, saya mengalami "Operasi Delta" dalam sesi merasa luar talian dan versi beta pertama. Pada masa itu, permainan hanya membuka mod "Tindakan Berbahaya". Walau bagaimanapun, Operasi Delta sudah mengagumkan pada zamannya. Dalam konteks pengeluar utama yang berpusu-pusu ke pasaran permainan mudah alih, FPS sedemikian yang setanding dengan piawaian antarabangsa

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Hubungan antara js dan vue: 1. JS sebagai asas pembangunan Web; 2. Kebangkitan Vue.js sebagai rangka kerja hadapan 3. Hubungan pelengkap antara JS dan Vue; Vue.

Maven ialah alat pengurusan projek sumber terbuka yang biasa digunakan untuk tugas seperti membina projek Java, mengurus kebergantungan dan menerbitkan dokumen. Apabila menggunakan Maven untuk binaan projek, kadangkala kita mahu mengabaikan fasa ujian apabila melaksanakan arahan seperti mvnpackage, yang akan meningkatkan kelajuan binaan dalam beberapa kes, terutamanya apabila prototaip atau persekitaran ujian perlu dibina dengan cepat. Artikel ini akan memperincikan cara mengabaikan fasa ujian dalam Maven, dengan contoh kod tertentu. Mengapa Ujian Sering Diabaikan Semasa Pembangunan Projek

Pengenalan Penyepaduan berterusan (CI) dan penggunaan berterusan (CD) ialah amalan utama dalam pembangunan perisian moden yang membantu pasukan menyampaikan perisian berkualiti tinggi dengan lebih pantas dan lebih dipercayai. Jenkins ialah alat CI/CD sumber terbuka yang popular yang mengautomasikan proses binaan, ujian dan penggunaan. Artikel ini menerangkan cara menyediakan saluran paip CI/CD dengan Jenkins menggunakan PHP. Sediakan Jenkins Pasang Jenkins: Muat turun dan pasang Jenkins daripada tapak web rasmi Jenkins. Cipta projek: Cipta projek baharu daripada papan pemuka Jenkins dan namakannya agar sepadan dengan projek php anda. Konfigurasikan kawalan sumber: Konfigurasikan repositori git projek PHP anda sebagai Jenkin
