1。Qunitとは何ですか
Qunit(http://qunitjs.com/)は、コードをデバッグするのに役立つ非常に強力なJavaScriptユニットテストフレームワークです。 JQueryチームのメンバーによって書かれ、JQueryの公式テストセットです。しかし、Qunitは通常、通常のJavaScriptコードをテストするのに十分であり、RhinoやV8などのいくつかのJavaScriptエンジンを介してサーバー側のJavaScriptをテストすることさえあります。
「ユニットテスト」の概念に慣れていない場合は、心配しないでください。これを理解するのはそれほど難しくありません:
コードコピーは次のとおりです。
コンピュータープログラミングでは、ユニットテスト(モジュールテストとも呼ばれます)は、プログラムモジュール(ソフトウェア設計の最小単位)で正確性テストを実行するテストです。プログラムユニットは、アプリケーションの最小のテスト可能なコンポーネントです。手続きプログラミングでは、ユニットは単一のプログラム、機能、手順などです。オブジェクト指向プログラミングの場合、最小ユニットは、基本クラス(スーパークラス)、抽象クラス、または派生クラス(サブクラス)の方法を含む方法です。 - ウィキペディアから引用。
簡単に言えば、コードのすべての機能のテストを作成し、これらのテストがすべて合格した場合、コードに欠陥がないことを確認できます(通常、テストの徹底に依存します)。
2。なぜコードをテストしたいのですか
以前にユニットテストを書いたことがない場合は、コードをウェブサイトに直接アップロードし、しばらくクリックして問題が発生するかどうかを確認し、見つけた問題を解決しようとすることができます。この方法には多くの問題があります。
まず第一に、これは非常に迷惑です。クリックは実際には簡単な仕事ではありません。なぜなら、すべてがクリックされていることを確認する必要があり、1つか2つを逃した可能性が高いからです。
第二に、テストのために行うことはすべて再利用できません。つまり、回帰することは困難です。リターンとは何ですか?コードを書いてテストし、見つけたすべての欠陥を修正してから投稿してください。この時点で、ユーザーは新しい欠陥に関するフィードバックを送信し、いくつかの新しい機能が必要です。コードに戻り、これらの新しい欠陥を修正し、新しい機能を追加します。次に起こるかもしれないことは、「リターン」と呼ばれる古い欠陥が再び現れることです。見て、もう一度クリックする必要があります。これらの古い負担の欠陥が見つからない可能性があります。たとえそうであっても、あなたの問題が回帰によって引き起こされていることを理解するのに時間がかかります。ユニットテストを使用して、テストを作成して欠陥を見つけ、コードが変更されたら、テストを再度フィルタリングします。回帰が発生した場合、一部のテストは間違いなく失敗し、それらを簡単に認識し、コードのどの部分にエラーが含まれているかを知ることができます。あなたが今あなたが変更したものを知っているので、それは簡単に解決できます。
特にWeb開発のための単体テストのもう1つの利点:クロスブラウザーの互換性テストを簡単にします。さまざまなブラウザでテストケースを実行するだけです。 1つのブラウザに問題がある場合は、それを修正し、これらのテストケースを再実行して、他のブラウザに回帰がないことを確認します。それらのすべてがテストに合格したら、すべてのターゲットブラウザがそれをサポートしていると確実に言うことができます。
John Resig:TestSwarm(http://testswarm.com/)によるプロジェクトに言及したいと思います。 JavaScriptユニットテストを新しいレベルに分配することで、これは誰でもテストケースを実行して結果をサーバーに返すことができる多くのテストケースを含むWebサイトです。このようにして、コードはさまざまなブラウザで非常に迅速にテストされるか、さまざまなプラットフォームで実行されます。
3. Qunitで単体テストを書く方法
それでは、Qunitでユニットテストをどのように正しく書いていますか?まず、テスト環境を設定する必要があります。
コードコピーは次のとおりです。
<!doctype html>
<html>
<head>
<title> qunitテストスイート</title>
<link rel = "styleSheet" href = "http://github.com/jquery/qunit/raw/master/qunit/qunit/qunit.css" type = "text/css" media = "screen">
<スクリプトタイプ= "text/javascript" src = "http://github.com/jquery/qunit/raw/master/qunit/qunit/qunit.js"> </script>
<! - プロジェクトファイルがここに行きます - >
<script type = "text/javascript" src = "myproject.js"> </script>
<! - テストファイルはここにあります - >
<script type = "text/javascript" src = "mytests.js"> </script>
</head>
<body>
<h1 id = "qunit-header"> qunitテストスイート</h1>
<h2 id = "qunit-banner"> </h2>
<div id = "qunit-testrunner-toolbar"> </div>
<h2 id = "qunit-useragent"> </h2>
<ol id = "qunit-tests"> </ol>
</body>
</html>
ご覧のとおり、マネージドQunitフレームワークバージョンはここで使用されています。
テストするコードはmyproject.jsに追加されており、テストをmytest.jsに挿入する必要があります。これらのテストを実行するには、ブラウザでHTMLファイルを開くだけです。さあ、いくつかのテストを書く時が来ました。
単体テストの礎石は、次のアサーションです。
アサーションは、コードの返品結果を予測する命題です。予測が偽で、アサーションが失敗した場合、何かが間違っていることがわかります。
アサーションを実行すると、テストケースに入れる必要があります。
コードコピーは次のとおりです。
//この関数をテストしましょう
関数iseven(val){
val%2 === 0を返します。
}
test( 'iseven()'、function(){
ok(iseven(0)、 'ゼロは偶数です');
OK(iseven(2)、 'SOも2つ');
ok(iseven(-4)、 '' so negative four ');
ok(!iseven(1)、 '1つは偶数ではありません');
ok(!iseven(-7)、 'どちらもネガティブセブンではありません」);
})
ここでは、関数を定義します。Isevenは、数値が奇数であるかどうかを検出するために使用されます。この関数をテストして、間違った答えを返さないことを確認します。
最初にテストケースを構築するtest()を呼び出します。最初のパラメーターは、結果に表示される文字列であり、2番目のパラメーターは、中断されたマスターを含むコールバック関数です。
私たちは5つのアサーションを書きましたが、それらはすべてブール値です。最初の議論が真実であると予想されるブールの主張。 2番目のパラメーターは、結果に表示されるメッセージです。
テストを実行する限り、これがあなたが取得したいものです。
4。詳細な学習リファレンス
上記はqunit.jsを簡単に紹介するだけで、多くのアサーション方法があります。詳細については、APIドキュメントを参照してください。
http://api.qunitjs.com/
ユニットテストは、コードを公開する前にテストする非常に良い方法です。以前にユニットテストを書いたことがない場合は、今こそ開始する時です!