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オブジェクトを入れる変数にはプレフィックスとして$をつけてる
