Rumah >hujung hadapan web >tutorial css >Menguji fungsi sass dalam 5 minit
mata teras
Walaupun jawatan ini mungkin sedikit lebih teknikal, saya percaya ia membantu ramai orang, kerana ujian harus menjadi tanggungjawab setiap pemaju. Juga, selepas anda memahami satu demi satu, anda akan mendapati bahawa ia sebenarnya tidak sukar difahami.
Buat fungsi maya untuk ujian
<code class="language-sass">@function double($value) { @return $value * 2; }</code>bunyi mudah. Walau bagaimanapun, untuk tujuan demonstrasi kami sahaja, kami sengaja memperkenalkan kesilapan dalam fungsi supaya kami dapat melihat salah satu ujian kami gagal.
<code class="language-sass">@function double($value) { // 为了演示目的而故意引入的错误 @if $value == 3 { @return 5; } @return $value * 2; }</code>Menulis Kes Ujian
<code class="language-sass">$tests-double: ( 1: 2, 2: 4, 3: 6, 4: 8 );</code>itu sahaja! Kami telah menulis kes ujian. Sekali lagi: Kiri adalah input, dan hak adalah output yang diharapkan.
Test Runner
Jika anda sudah biasa dengan Sass, anda mungkin sudah memahami perkara ini. Pelari ujian kami akan melangkah ke atas peta ujian, hubungi fungsi untuk setiap input, dan pastikan ia sepadan dengan output yang diharapkan. Ia kemudian akan mencetak hasil ujian kami.
inilah yang kelihatan seperti pelari ujian kami:
<code class="language-sass">/// 在测试套件 ($tests) 上运行函数 ($function) /// @param {Map} $tests - 测试套件 /// @param {String} $function - 要测试的函数名称 @mixin run-tests($tests, $function) { .. }</code>Baiklah. Mari kita lihat lebih mendalam di bahagian dalam "binatang" ini. Idea ini adalah untuk menggunakan hasil setiap ujian untuk membina rentetan, dan apabila semua operasi selesai, cetak rentetan menggunakan arahan
. Sebagai contoh, kita juga boleh menyampaikannya kepada harta @error
pseudo-elemen, tetapi ini sedikit lebih rumit, jadi kita akan melekat dengan content
. @error
Perkara pertama yang perlu dilakukan ialah melelehkan suite ujian. Untuk setiap ujian, kami memanggil fungsi secara dinamik berdasarkan namanya (menggunakan fungsi call(...)
) dan periksa sama ada hasilnya seperti yang diharapkan.
<code class="language-sass">@function double($value) { @return $value * 2; }</code>
Pada masa ini, sistem kami sedang berjalan. Mari kita jalankan di suite ujian kami dan lihat bagaimana rupanya.
<code class="language-sass">@function double($value) { // 为了演示目的而故意引入的错误 @if $value == 3 { @return 5; } @return $value * 2; }</code>
<code class="language-sass">$tests-double: ( 1: 2, 2: 4, 3: 6, 4: 8 );</code>
hei! Inilah permulaan, bukan? Sekarang kita hanya perlu membuat output lebih berguna (dan lebih mesra).
Ini adalah apabila anda boleh menyesuaikan output untuk menjadikannya kelihatan seperti anda mahu ia kelihatan. Tidak ada satu cara untuk melakukan ini, anda boleh mengeluarkan apa sahaja output yang anda suka. Perhatikan bahawa mengikut spesifikasi CSS, anda boleh menggunakan a
untuk membungkus garisan dalam rentetan.
Dalam kes saya, inilah yang saya pilih:
<code class="language-sass">/// 在测试套件 ($tests) 上运行函数 ($function) /// @param {Map} $tests - 测试套件 /// @param {String} $function - 要测试的函数名称 @mixin run-tests($tests, $function) { .. }</code>
Jika kita menjalankannya lagi pada fungsi $tests-double
, inilah yang kita dapat: double
<code class="language-sass">@mixin run-tests($tests, $function) { $output: ''; @each $test, $expected-result in $tests { $result: call($function, $test...); @if $result == $expected-result { // 测试通过 $output: $output + 'Test passed; '; } @else { // 测试失败 $output: $output + 'Test failed; '; } } // 打印输出 @error $output; }</code>Ia sangat kemas sekarang, bukan?
fungsi ujian dengan pelbagai parameter
<code class="language-sass">@include run-tests($tests-double);</code>Jika anda menyemak pengadun kami, anda akan melihat bahawa apabila memanggil fungsi menggunakan
kami menambah ellipsis (...) kepada pembolehubah call(...)
. $test
<code>Test passed; Test passed; Test failed; Test passed;</code>Ini bermakna kita lulus nilai
sebagai senarai parameter. Dalam erti kata lain, jika $test
adalah senarai (mis. $test
('a', red, 42px')
Pemikiran Akhir
Sudah tentu, jika anda sedang mencari penyelesaian yang lebih mendalam, anda mungkin ingin melihat Eric Suzanne yang benar. Sebagai rangka kerja ujian SASS yang lengkap, ia lebih sesuai untuk infrastruktur ujian unit global.
Jika anda mahu melihat (versi kod yang lebih maju), saya telah membuka repositori Sassytester untuk mengumpul segala -galanya.
Jadi apa pendapat anda?
Soalan Lazim Mengenai Ujian Fungsi Sass (FAQ)
Pelbagai alat dan kaedah boleh digunakan untuk menguji fungsi SASS. Pendekatan yang biasa adalah menggunakan kerangka ujian SASS, seperti benar. Benar adalah alat ujian unit yang diintegrasikan dengan projek SASS anda. Ia membolehkan anda menulis ujian secara langsung dalam fail SASS, yang kemudiannya boleh dijalankan di Node.js atau mana -mana pelayar web.
Beberapa amalan terbaik untuk menguji fungsi SASS termasuk ujian menulis untuk setiap fungsi, menggunakan konvensyen penamaan yang konsisten untuk ujian, dan memastikan bahawa ujian meliputi semua senario yang mungkin. Ia juga penting untuk menjalankan ujian secara teratur dan mengemas kini ujian seperti yang diperlukan semasa membuat perubahan pada fungsi.
Ya, anda boleh menguji fungsi SASS menggunakan JavaScript. Anda boleh menggunakan alat seperti JEST untuk menguji fungsi SASS anda. Jest adalah rangka kerja ujian JavaScript yang membolehkan anda menulis ujian dalam sintaks mudah dan jelas.
Beberapa cabaran umum dalam menguji fungsi SASS termasuk mengendalikan fungsi kompleks, menguruskan kebergantungan, dan memastikan keserasian penyemak imbas. Cabaran -cabaran ini dapat diatasi menggunakan rangka kerja ujian yang kuat, menulis ujian yang jelas dan ringkas, dan kerap memeriksa dan mengemas kini ujian.
Anda boleh meningkatkan kemahiran ujian SASS anda dengan mengamalkan secara teratur, membaca dan mempelajari kod orang lain, dan memahami trend terkini dan amalan terbaik ujian SASS. Mengambil bahagian dalam cabaran pengekodan dan menyumbang kepada projek sumber terbuka juga boleh membantu meningkatkan kemahiran anda.
Sass memainkan peranan penting dalam pembangunan web dengan menjadikan CSS lebih kuat dan lebih mudah untuk dikekalkan. Ia menyediakan ciri -ciri seperti pembolehubah, bersarang, pengadun, dan fungsi, yang membantu menulis kod CSS yang lebih cekap dan boleh diguna semula.
Pelbagai alat dan teknik boleh digunakan untuk debug fungsi SASS. Pendekatan yang sama adalah menggunakan fungsi SASS inspect
, yang membolehkan anda menyemak nilai ekspresi SASS. Anda juga boleh menggunakan arahan SASS @debug
, yang mencetak nilai ekspresi SASS ke konsol.
Walaupun fungsi SASS boleh diuji tanpa kerangka ujian, ini tidak disyorkan. Rangka kerja ujian menyediakan pendekatan berstruktur dan sistematik untuk menguji, menjadikannya lebih mudah untuk menulis, mengurus, dan menjalankan ujian.
Menggunakan Rangka Kerja Ujian SASS menyediakan banyak faedah. Ia membolehkan anda menulis ujian dengan cara berstruktur dan sistematik, menjadikannya lebih mudah untuk mengurus dan menjalankan ujian. Ia juga menyediakan alat dan ciri yang boleh membantu menulis ujian yang lebih cekap, seperti fungsi penegasan dan pelari ujian.
Atas ialah kandungan terperinci Menguji fungsi sass dalam 5 minit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!