2016-04-01 4 views
1

NPMチャイとチェックタイプの2つの一般的なライブラリがあります。私は彼らの意図した目的を理解しようとしています。Javascriptアサーションライブラリ - チャイ対チェックタイプ

私はchaiがTDD/BDDスタイルのユニットテストに使用されており、豊富なアサーションライブラリを持っていることを知っています。

一方、チェックタイプ(https://github.com/philbooth/check-types.js)は、引数が正しいタイプであることをチェックするための単なるアサーションライブラリです。これは単体テストに使用されるようには見えません。私は、関数に渡される引数の型が期待される型であることを保証するために、これが私のJavascript関数の内部で使用されることを前提としています。

チャイがすでにリッチアサーションライブラリをサポートしている場合は、チェックタイプライブラリが冗長ですか?それとも、彼らはさまざまな用途に使用されていますか?私のコードでchaiを使って(テストの外で)正しいタイプの変数をチェックすることはできますか? - したがって、通常のアプリ内で実行するためにどのような方法で最適化されていない

チャイアサーション-Libraryはただのテストのために意図されて:あなたはすでに正しく想定したよう

答えて

1

、ここでは二つの異なるユースケースがあります。そこにミニバージョンのバージョンはありませんし、それはあなたにスタイルのテストの異なる可能性のためのライブラリコードの多くをもたらす必要があります(とassert)。そして、最も重要:アサーションのための条件はないある場合チャイがimmidiately カルマまたはモカのような人気のテストハーネスによって処理されることを意図していることAssertionError特別にスローされます、会いました。一方、

チェックインタイプのは単にアプリ内でより簡単に、より読みやすくタイプ - と値チェックにすることを目的としています。ほとんどの場合、アサーションが満たされない(スローしない)ときに何をすべきかを決定します。

結論:

もちろん、あなたのテストの外にチャイを使用することができますが、それだけで未使用の方法の多くとビルドのサイズを増加し、あなたがtry{} catch(){}が必要になりますように、私は間違いなくそれをお勧めしませんあらゆるアサーションの周りをブロックする。

チェックタイプをテストに使用することができますが、すべてのテストにはAssertionErrorsを自分で投げる必要があります(これは面倒です)。

So:いいえ、どちらのライブラリもいずれも重複していません。チャイは、チェックタイプのチャイ)のようなライブラリのスーパーセットの一種と考えることができます。type-detect(これは私がメンテナのひとりです)という)自身のタイプ検出ライブラリを使用しています。テストハーネス内。

+0

ありがとうございます。違いは今明らかです。 – shuaybi

+0

あなたはとても親切で答えとしてマークできますか?ありがとう! :) – Charminbear

関連する問題