バージョン1.1.0 test.itが昨日リリースされました-jsコードをテストするためのフレームワークです。
彼はついに機能的になりましたが、それが不足しているので劣っていました:
- 非同期テスト/グループ
- 個々のテスト/グループを実行する

たくさんの言葉が嫌いな人-動作中のコードを見ることができるサイト 、 GitHub 、 Wiki
変更履歴
- ボンネットの下の変化
- 深刻なリファクタリング-連鎖および継承技術の変更
- ウィンドウレス環境(node.jsなどのウィンドウオブジェクトがない環境)で実行する機能
これは、node.js、angular.jsなどの下のポートの準備操作です。
- インターフェースの変更
.done()は、チェーン終了メソッドとして追加機能を受け取りました。
新しいメソッドと属性が登場しました:
- チェーンリンク.addTrace(レベル)
- チェーン準備の時間
- チェーン準備者を除く
- 修正済み:
- 更新されたwikiサイトと例
新機能
チェーンリンク.addtrace(レベル)-test / group-実行につながった行のリストにトレースを追加します。
level-表示される行数(またはトレースが上がるスコープの深さ)を設定します。
このメソッドは、ユーザーvk Denya Tatarinovのリクエストで追加されました。これは、多数の非同期呼び出し(テスト)を監視するのに役立つという説明がありました。
私はすべてのajaxリクエストをログに記録する良い習慣を持っています。 より正確には、サーバーからの応答。 そして、ある種のでたらめが起こったとき、私はそれが起こった行を知りたいです)ここにおいを書いてはいけない、これは各呼び出しの45行目です。 +コードでナビゲートするのに役立ちます
このタスクでは、1行(現在)の出力だけで十分ですが、混乱を招くコードを追跡する必要があるユーザーを知ることはできません。
例とスクリーンショット
(function firstFunction() { (function secondFunction() { (function lastFunction() { test.it(1).addTrace(0); // test.it(1).addTrace(); // })(); })(); })();

.Time chain preparer-テスト出力に、実行(または結果がテストに渡された関数の実行)に費やされた時間を追加します
これはメソッド、つまり属性ではないことに注意してください。 その後に括弧を入れないでください!
例とスクリーンショット
test.time.it(someThing());

チェーン準備機能を除外 -テストまたはグループが現在のレベルのスタックに到達するのを防ぎます。 これも属性ですので、その後に括弧を入れないでください!
非同期テストに役立つ場合があります。
例
alert(test.exclude.it(someThing).result()); // alert test.exclude.group('some group',function(){ ... }).done(); //
個々のテストとグループを表示する
最後に、これらすべての.groupが意味をなしました!.done() -それが表示された方法と場所に応じて表示されます:
- グループ外のテストオブジェクトのメソッドとして、以前のように結果を出力します。 例
test.done();
- グループ内のテストオブジェクトのメソッドとして、そこに到達したすべてのテストとサブグループを含むこのグループを出力します。 例
test.group('group of tests',function(){ test.it(false); test.done(); test.it(true); });
- グループのチェーンの最後のリンクとして-チェーンの最後のグループを表示します 例
test.group('group of tests',function(){ test.it(true); test.it(false); }).done(); // test.group('group of tests').done();
- テストチェーンの最後のリンクとして-このテストは出力します 例
test.it(true).comment(' ').done();
非同期テスト
新しい.done()動作(および少しの.exclude )のおかげで、非同期テストが利用可能になりました。
var a = false; // , 2 setTimeout(function () {a=true}, 2000) // ( ) setTimeout(function () { test.group('async tests',function(){ test.it(a).comment(' '); }).comment('async group').done(); // }, 1000); setTimeout(function () { test.exclude.it(a).comment(' ').done(); // , root }, 3000);
〜3秒後、コンソールは次のことを行います。

藤堂
さて、すでに行われたことを磨くことに加えて、優先度の高いタスク-node.jsおよび同様の言語(?)への移植を行いました 。
参照資料
動作中のコードを見ることができるサイト 、 GitHub 、 Wiki
PS
私がリファクタリングを行っている間に、実際にtest.themとtest.typesが必要なのは自分自身に尋ねました 。 これに関連して、コミュニティに質問したいのですが、最も頻繁に使用するテストは何ですか? 基本的にどのテストが必要ですか?
調査では、このフレームワークのテストのみを示しますが、コメントでは、他の言語を含む他のフレームワークのテストについて説明できます。