Sapporo.js-20120331
テストフレームワークの紹介
QUnit
- jQueryから分離
- XUnit系
jasmine
- BDD for JavaScript
- RSpecっぽい
whiskey
- 最近よさげ?
- Nodeで使いやすいように作ってある
- ドキュメントが少ない
mocha
- @tricknoesさんがお気に入り
- フレキシブル
- 実行結果の出力形式が豊富
- JSONとかTAPとか
mochaの準備
- npm install -g mocha
- npm install expect.js
current dirにtest/を作ってテスト用ファイルを作る
describe('Example', function() { it('should passed test', function() {}) }
mochaを実行すると、test/以下のファイルを実行してくれる
追記: mochaのinstall時に-gをつけないと、mochaコマンドを直接叩けない
mochaのその他メモ
- -Rで出力を切り替えられる。指定できるフォーマットは--reportersで確認
- -wでtest以下のディレクトリの変更をwatch
- -Gを付けるとGrowlに通知
JavaScript: The Good Partsの読み合わせ
- P.90の
array.pop()
まで進んだ "hoge"
とString("hoge")
の違いについて確認方法
Object.prototype.self = function() { return this; } typeof ("hoge").self(); // "object" ("hoge").self().valueOf(); // "hoge"
遅延再定義 @oosugi20さん
var func = function() {
var count = 0;
var hoge = $('#hoge');
$hoge.text('1回目のクリック');
// 2回目以降は↓の関数のみ実行される
func = function () {
count += 1;
hoge.text('2回目以降のクリック(' + count + ')');
};
}
$(function(){
$('#btn').on('click', function() { func(); });
});
- countによって処理をわけているけど、毎回countを比較しないので効率がよい
- jQueryオブジェクトを入れる変数にはプレフィックスとして
$
をつけてる