ホームページ >ウェブフロントエンド >CSSチュートリアル >5分でSASS機能をテストします
コアポイント
この投稿はもう少し技術的かもしれませんが、テストはすべての開発者の責任であるべきであるため、多くの人々を助けると思います。また、これらを1つずつ理解した後、実際に理解するのは難しくないことがわかります。
テスト用の仮想関数を作成
<code class="language-sass">@function double($value) { @return $value * 2; }</code>シンプルに聞こえます。ただし、デモンストレーションのみのためにのみ、テストの1つが実際に失敗するのを実際に見ることができるように、関数のエラーを意図的に導入します。
<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>それだけです!テストケースを書きました。繰り返しますが、左は入力であり、右は予想される出力です。
テストランナー
SASSに精通している場合、おそらくこれをすでに理解しているでしょう。テストランナーは、テストマップを繰り返し、各入力の関数を呼び出し、予想される出力と一致することを確認します。その後、テスト結果を印刷します。
これが私たちのテストランナーがどのように見えるかです:
<code class="language-sass">/// 在测试套件 ($tests) 上运行函数 ($function) /// @param {Map} $tests - 测试套件 /// @param {String} $function - 要测试的函数名称 @mixin run-tests($tests, $function) { .. }</code>わかりました。この「獣」の内側をもっと詳しく見てみましょう。アイデアは、各テストの結果を使用して文字列を構築することです。すべての操作が完了したら、
ディレクティブを使用して文字列を印刷します。たとえば、それを擬似要素の@error
プロパティに渡すこともできますが、これはもう少し複雑であるため、content
に固執します。 @error
最初に行うことは、テストスイートを反復することです。各テストについて、その名前(call(...)
関数を使用)に基づいて関数を動的に呼び出し、結果が予想どおりであるかどうかを確認します。
<code class="language-sass">@function double($value) { @return $value * 2; }</code>
この時点で、システムは実行されています。テストスイートで実行して、それがどのように見えるか見てみましょう。
<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>
ねえ!これが始まりですよね?これで、出力をより便利に(そしてよりフレンドリー)する必要があります。
これは、出力をカスタマイズして、見たいように見えるようにすることができるときです。これを行う方法はありません。好きな出力を出力できます。 CSS仕様によれば、a
を使用して、文字列にラインを包むことができることに注意してください。
<code class="language-sass">/// 在测试套件 ($tests) 上运行函数 ($function) /// @param {Map} $tests - 测试套件 /// @param {String} $function - 要测试的函数名称 @mixin run-tests($tests, $function) { .. }</code>
関数で再び実行すると、これが得られるものです。
$tests-double
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>
この例では、関数にはパラメーターが1つしかありませんが、SASSマップが複数のパラメーターで関数をテストするためにキー(リストを含む)として何でも受け入れるという事実に依存することができます。このように見えます:
を使用して関数を呼び出すと、
変数にerlypsis(...)を追加することがわかります。<code class="language-sass">@include run-tests($tests-double);</code>
これは、パラメーターリストとしてcall(...)
値を渡すことを意味します。言い換えれば、$test
<code>Test passed; Test passed; Test failed; Test passed;</code>
それだけです、友達:これまでで最小のSASSテストエンジン。この小さなテストシステムは、特に他の開発者(Frameworks、Libraries ...)が利用できるようにすることを計画している場合、プロジェクトにある可能性のある少数の機能をテストするのに非常に便利です。また、Sassmeisterで機能をすばやくテストするのが非常に便利であることがわかりました。ミキサーと機能をそこに置いて、テストを実行してください! $test
$test
もちろん、より詳細なソリューションを探している場合は、エリックスザンヌのTrueをチェックしてください。完全なSASSテストフレームワークとして、グローバルユニットテストインフラストラクチャにより適しています。 ('a', red, 42px')
SASS関数のテスト(FAQ)
SASS関数をテストすることの重要性は何ですか?
SASS関数のテストは、CSSプリプロセッサの機能と効率を保証するため、Web開発において重要です。バグを特定して修正し、サイトのパフォーマンスを改善し、SASS機能が期待どおりに機能するようにします。 SASS機能をテストすることにより、さまざまなブラウザとプラットフォームでWebサイトの設計とレイアウトが一貫していることを確認できます。さまざまなツールとメソッドを使用して、SASS機能をテストできます。一般的なアプローチは、TrueなどのSASSテストフレームワークを使用することです。 Trueは、SASSプロジェクトと統合する単体テストツールです。 SASSファイルに直接テストを作成することができ、node.jsまたは任意のWebブラウザーで実行できます。
SASS関数のテストのためのいくつかのベストプラクティスには、各関数のテストの書き込み、テストの一貫した命名規則を使用し、テストがすべての可能なシナリオをカバーすることを保証することが含まれます。また、テストを定期的に実行し、機能を変更する際に必要に応じてテストを更新することも重要です。
はい、JavaScriptを使用してSASS関数をテストできます。 Jestなどのツールを使用して、SASS機能をテストできます。 Jestは、シンプルで明確な構文でテストを作成できるJavaScriptテストフレームワークです。
SASS関数のテストにおけるいくつかの一般的な課題には、複雑な関数の処理、依存関係の管理、クロスブラウザーの互換性の確保が含まれます。これらの課題は、強力なテストフレームワークを使用して克服し、明確で簡潔なテストを作成し、テストを定期的にチェックおよび更新することができます。
定期的に練習し、他の人のコードを読んで学習し、SASSテストの最新のトレンドとベストプラクティスを理解することで、SASSテストスキルを向上させることができます。コーディングの課題に参加し、オープンソースプロジェクトに貢献することは、スキルの向上にも役立ちます。
SASS関数をデバッグする方法は?
関数を使用することです。これにより、SASS式の値を確認できます。また、SASS式の式の値をコンソールに印刷するSASSinspect
ディレクティブを使用することもできます。 @debug
SASSテストフレームワークを使用することの利点は何ですか?
以上が5分でSASS機能をテストしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。