Chapter 6: Testing More Complex Code
■Naming clashes
複数のjsファイルを読み込む時は名前の衝突が起きることもあるので名前空間の使用を勧める■Using JavaScript libraries
現在は多くのライブラリがあります。- JQuery (http://jquery.com)
- YUI (Yahoo! User Interface JavaScript library) (http://developer.yahoo.com/yui/)
- Dojo (http://dojotoolkit.org/)
- Prototype (http://www.prototypejs.org/)
- Mootools (http://mootools.net/)
- Script.aculo.us (http://script.aculo.us/)
- 利用可能なサポートのレベル、ドキュメント化されているか
- チュートリアルやヘルプなどがあるか
- プラグインやアドオンが利用できる
- ビルトインでテストスイートがある?これはとても重要です
■What sort of tests to run against library code
どんな種類のテストをやるの?Performance testing
パフォーマンステストはその前の通りですが、Firebugといったブラウザに限定されたツールではなくほかのブラウザをカバーできるツールや方法が必要になるでしょうProfiling testing
プロファイリングテストはパフォーマンステストに似ていますが、ボトルネックに注目します。ボトルネックを改善することはパフォーマンスの向上につながります。
■GUI and widget add-ons to libraries and considerations on how to test them
ライブラリの中にはUI系の機能を持ったものもあります。それをテストするのは難しく、簡単な方法は手動で視覚的に確認する方法です。しかし、手動で確認するのは大変なのでGUIをテストする自動化ツールもあります。
Sahi http://sahi.co.in/w/ (Selemium的な感じ)
これについてはまた後で
■Deliberately throwing your own JavaScript errors
JavaScriptのエラーや例外を投げる方法についてThe throw statements
throw(exception);
// We can use throw(exception) in the following ways:
throw "This is an error";
// or:
throw new Error("this is an error");
という書き方でthrowできます。throwは普段はtry, catch, finallyと一緒に使います
■Trapping errors by using built-in objects
詳しくはこの辺を参照The Error object
Errorオブジェクトは数値や文字列を引数にとることができます
new Error(1);
new Error("it must be a number");
The RangeError object
RangeErrorは数値が範囲外の時に発生します。使い方はErrorと同じで数値と文字列を引数にとれます。
new RangeError(1);
new RangeError("out!");
The ReferenceError object
ReferenceErrorは値やオブジェクトを参照するときにそれ存在していないときに発生します。使い方は同じなので略
The TypeError object
TypeErrorは間違った型のアクセスをすると投げられますThe SyntaxError object
文法が間違ってる時The URIError object
URLが不正な時The EvalError object
evalが間違った使い方をされた時や内部でシンタックスエラーが起きてるときエラーはコンソールに出るので、ブラウザのコンソールを使いましょう
コメント(0件)
- TB-URL http://efcl.info/adiary/0108/tb/