Cookbook of QUnit
9912 ワード
この文章はQUnitの紹介で、とても良い入門教程とすることができます.文章のアドレス
自動化テストではソフトウェア開発の過程で不可欠な部分であり、ユニットテストは自動化テストの最も基本的な部分であり、ソフトウェアの各コンポーネントである.
各機能ユニットは、オンライン時に正常に動作することを保証するために、テストを継続する必要があります.もちろん、テストもこれらの役割だけでなく、最も人間的なものです.
テスト駆動設計(test-driven design)が知られており、テストは実装より先に行われる.まず簡単なテストを書きます.もちろん、この時点で実行します.
エラーが発生し、テストに合格するまで具体的な実装を開始します.私たち自身でテスト関数を実現するだけでは、テストプロセスをつかむことができません.
の詳細(エラーコード、エラーコード、実行結果と予想結果の違い)、各ブラウザの互換性も狂ってしまうので、私たちは
ブラウザの違いを解決し、詳細な情報を提供するテストフレームワークが必要で、John Resig大神はQunitフレームワークを書いた.こんな金持ちは書けないが
調整型のフレームワークですが、QUnitの使い方を習得する必要があります.
アプリケーションをユニットテストしたり、テスト駆動設計から利益を得たりしたい場合は、自分でテスト関数を手動で書く必要があります.しかし、上記のようにテストは
詳細情報とブラウザの互換性は難しいので、解決する必要があります.
Qunitを使って、Qunitのお金を使って、qunitを導入する必要があります.jsとqunit.cssファイル
idがqunit-fixtureのdivラベルは必須であり、すべてのQunitテストで同じであり、テスト治具である.テストが終わるたびにテスト治具内の
内容が空になる.
テスタがQUnitを実行するテストの開始時間を制御するため、documentReadyの後にテストが実行されていないことがわかります.test
を選択すると、関数が待機キューに追加され、テスタ呼び出しがわかります.
ユニットテストに欠かせない要素の一つだと断言します.使用者は、予想される結果と、テスタに具体的な実装を実行させる結果とを比較し、対応する
の判断を下す.
Qunitは簡単な断言を提供した.
最も基本的な断言はok()であり、booleanパラメータ(またはbooleanに変換できるパラメータ、jsではbooleanにタイプ変換できるようです)を提供する必要があります.
別のパラメータはオプションです.
equalは「==」オペレータを使用してactualパラメータとexpectedパラメータを比較し、messageはテストによって表示された情報です.
strictEqual()は"==="で2つのパラメータを比較します.
この方法は、単純な数値タイプについても「===」を使用して比較します.オブジェクトの場合は、====を使用しません.オブジェクトのプロパティを便利にし、キー値のペアを比較します.
(キーと値を比較します).
コールバック・モードでは、コールバック関数に格納されたコードがブレークスルーの実行を阻止する可能性があるため、ブレークスルーが実行されるかどうかを何らかの方法で注意する必要があります.
assert.を使ってもいいです.expect(n)は、予想される実行断言の数を設定する.予想される数の断言が実行されていない場合は、エラーが報告されます.
非同期コールバックは、テスタのキューとテストを実行する方法と競合します.テスト後のテスト関数は実行されません.
非同期コールバックでassertを使用した後、assertを呼び出す.aysnc()はdone関数を返し、テスト実行後にdone関数を呼び出します.
テストの結果、done関数を呼び出さないと、エンドスライス関数は実行されず、その後のテスト関数も実行されません.
testを実行するたびに、QUnitは#qunit-fixtureのdom divをリセットし、含まれるイベントをリセットします.テストコードがテスト治具内にある限り、
治具を手動で清掃する.
グループテストは、論理的に類似したテストが一緒に実行されることを保証し、スライス関数を追加することができます.この関数は、テストの前後で実行されます.
紹介する
自動化テストではソフトウェア開発の過程で不可欠な部分であり、ユニットテストは自動化テストの最も基本的な部分であり、ソフトウェアの各コンポーネントである.
各機能ユニットは、オンライン時に正常に動作することを保証するために、テストを継続する必要があります.もちろん、テストもこれらの役割だけでなく、最も人間的なものです.
テスト駆動設計(test-driven design)が知られており、テストは実装より先に行われる.まず簡単なテストを書きます.もちろん、この時点で実行します.
エラーが発生し、テストに合格するまで具体的な実装を開始します.私たち自身でテスト関数を実現するだけでは、テストプロセスをつかむことができません.
の詳細(エラーコード、エラーコード、実行結果と予想結果の違い)、各ブラウザの互換性も狂ってしまうので、私たちは
ブラウザの違いを解決し、詳細な情報を提供するテストフレームワークが必要で、John Resig大神はQunitフレームワークを書いた.こんな金持ちは書けないが
調整型のフレームワークですが、QUnitの使い方を習得する必要があります.
オートメーションユニットテスト
に質問
アプリケーションをユニットテストしたり、テスト駆動設計から利益を得たりしたい場合は、自分でテスト関数を手動で書く必要があります.しかし、上記のようにテストは
詳細情報とブラウザの互換性は難しいので、解決する必要があります.
ソリューション
Qunitを使って、Qunitのお金を使って、qunitを導入する必要があります.jsとqunit.cssファイル
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>QUnit basic example</title>
<link rel="stylesheet" href="//code.jquery.com/qunit/qunit-1.16.0.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="//code.jquery.com/qunit/qunit-1.16.0.js"></script>
<script>
QUnit.test( "a basic test example", function( assert ) {
var value = "hello";
assert.equal( value, "hello", "We expect value to be hello" );
});
</script>
</body>
</html>
idがqunit-fixtureのdivラベルは必須であり、すべてのQunitテストで同じであり、テスト治具である.テストが終わるたびにテスト治具内の
内容が空になる.
テスタがQUnitを実行するテストの開始時間を制御するため、documentReadyの後にテストが実行されていないことがわかります.test
を選択すると、関数が待機キューに追加され、テスタ呼び出しがわかります.
アサーション結果
に質問
ユニットテストに欠かせない要素の一つだと断言します.使用者は、予想される結果と、テスタに具体的な実装を実行させる結果とを比較し、対応する
の判断を下す.
イニシアチブ
Qunitは簡単な断言を提供した.
ok( truthy [, message ] )
最も基本的な断言はok()であり、booleanパラメータ(またはbooleanに変換できるパラメータ、jsではbooleanにタイプ変換できるようです)を提供する必要があります.
別のパラメータはオプションです.
QUnit.test( "ok test", function( assert ) {
assert.ok( true, "true succeeds" );
assert.ok( "non-empty", "non-empty string succeeds" );
assert.ok( false, "false fails" );
assert.ok( 0, "0 fails" );
assert.ok( NaN, "NaN fails" );
assert.ok( "", "empty string fails" );
assert.ok( null, "null fails" );
assert.ok( undefined, "undefined fails" );
});
equal( actual, expected [, message ] )
equalは「==」オペレータを使用してactualパラメータとexpectedパラメータを比較し、messageはテストによって表示された情報です.
QUnit.test( "equal test", function( assert ) {
assert.equal( 0, 0, "Zero, Zero; equal succeeds" );
assert.equal( "", 0, "Empty, Zero; equal succeeds" );
assert.equal( "", "", "Empty, Empty; equal succeeds" );
assert.equal( 0, false, "Zero, false; equal succeeds" );
assert.equal( "three", 3, "Three, 3; equal fails" );
assert.equal( null, false, "null, false; equal fails" );
});
strictEqual()は"==="で2つのパラメータを比較します.
deepEqual( actual, expected [, message ] )
この方法は、単純な数値タイプについても「===」を使用して比較します.オブジェクトの場合は、====を使用しません.オブジェクトのプロパティを便利にし、キー値のペアを比較します.
(キーと値を比較します).
QUnit.test( "deepEqual test", function( assert ) {
var obj = { foo: "bar" };
assert.deepEqual( obj, { foo: "bar" }, "Two objects can be the same in value" );
});
シンクロコールバック
に質問
コールバック・モードでは、コールバック関数に格納されたコードがブレークスルーの実行を阻止する可能性があるため、ブレークスルーが実行されるかどうかを何らかの方法で注意する必要があります.
イニシアチブ
assert.を使ってもいいです.expect(n)は、予想される実行断言の数を設定する.予想される数の断言が実行されていない場合は、エラーが報告されます.
QUnit.test( "a test", function( assert ) {
assert.expect( 2 );
function calc( x, operation ) {
return operation( x );
}
var result = calc( 2, function( x ) {
assert.ok( true, "calc() calls operation function" );
return x * x;
});
assert.equal( result, 4, "2 square equals 4" );
});
ひどうきコールバック
に質問
非同期コールバックは、テスタのキューとテストを実行する方法と競合します.テスト後のテスト関数は実行されません.
イニシアチブ
非同期コールバックでassertを使用した後、assertを呼び出す.aysnc()はdone関数を返し、テスト実行後にdone関数を呼び出します.
テストの結果、done関数を呼び出さないと、エンドスライス関数は実行されず、その後のテスト関数も実行されません.
QUnit.test( "asynchronous test: async input focus", function( assert ) {
var done = assert.async();
var input = $( "#test-input" ).focus();
setTimeout(function() {
assert.equal( document.activeElement, input[0], "Input was focused" );
done();
});
});
しけんのげんしせい
testを実行するたびに、QUnitは#qunit-fixtureのdom divをリセットし、含まれるイベントをリセットします.テストコードがテスト治具内にある限り、
治具を手動で清掃する.
グループテスト
グループテストは、論理的に類似したテストが一緒に実行されることを保証し、スライス関数を追加することができます.この関数は、テストの前後で実行されます.
QUnit.module( "module", {
setup: function( assert ) {
assert.ok( true, "one extra assert per test" );
}, teardown: function( assert ) {
assert.ok( true, "and one extra assert after each test" );
}
});
QUnit.test( "test with setup and teardown", function() {
assert.expect( 2 );
});