assert
JavaScriptではどういう意味ですか?
私は次のようなものを見てきました:
assert(function1() && function2() && function3(), "some text");
そして、メソッドが何をするのか知りたいassert()
です。
assert
JavaScriptではどういう意味ですか?
私は次のようなものを見てきました:
assert(function1() && function2() && function3(), "some text");
そして、メソッドが何をするのか知りたいassert()
です。
assert
JavaScript 自体に標準はありません。おそらく、ライブラリを提供するライブラリを使用しているでしょう。たとえば、Node.js を使用している場合は、おそらくアサーション モジュールを使用しています。(コンソール APIを実装するコンソールを提供するブラウザーおよびその他の環境は、console.assert
.
関数の通常の意味は、assert
関数に渡された式が false の場合にエラーをスローすることです。これは、アサーション チェックの一般的な概念の一部です。通常、アサーション (と呼ばれる) は、"テスト" または "デバッグ" ビルドでのみ使用され、製品コードから削除されます。
常に文字列を受け入れる関数があるとします。誰かがその関数を文字列ではないもので呼び出したかどうかを知りたいと思うでしょう (TypeScript や Flow のような型チェック レイヤーを使用せずに)。だからあなたはするかもしれません:
assert(typeof argumentName === "string");
...assert
条件が false の場合、where はエラーをスローします。
非常に単純なバージョンは次のようになります。
function assert(condition, message) {
if (!condition) {
throw message || "Assertion failed";
}
}
さらに良いことに、Error
オブジェクトを利用すると、スタック トレースなどを収集できるという利点があります。
function assert(condition, message) {
if (!condition) {
throw new Error(message || "Assertion failed");
}
}
最新のブラウザまたは nodejs を使用している場合は、console.assert(expression, object)
.
詳細については:
assert()
ネイティブの JavaScript 関数ではありません。誰かが作ったカスタム関数です。あなたのページやファイルでそれを探し、それが何をしているのかを判断できるように投稿する必要があります。
これを確認してください:http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-quick-and-easy-javascript-testing-with-assert/
JavaScript をテストするためのものです。驚くべきことに、このコードはわずか 5 ~ 6 行で、テスト時に優れたレベルの機能とコードの制御を提供します。
assert 関数は、次の 2 つのパラメーターを受け入れます。
結果: テストが成功したか失敗したかを参照するブール値
description: テストの簡単な説明。
assert 関数は、単純にリスト アイテムを作成し、テストが true または false を返すかどうかに応じて「合格」または「失敗」のいずれかのクラスを適用し、リスト アイテムに説明を追加します。最後に、コードのブロックがページに追加されます。めちゃくちゃシンプルですが、完璧に機能します。
コードの一部が使用しているテスト ライブラリが付属している可能性があります。1 つの例を次に示します (コードが使用しているライブラリと同じではない可能性がありますが、一般的な考え方を示しています)。
以前の回答は、パフォーマンスと互換性の点で改善できます。
オブジェクトが存在するかどうかを一度確認し、Error
存在しない場合は宣言します。
if (typeof Error === "undefined") {
Error = function(message) {
this.message = message;
};
Error.prototype.message = "";
}
次に、各アサーションは条件をチェックし、常にError
オブジェクトをスローします
function assert(condition, message) {
if (!condition) throw new Error(message || "Assertion failed");
}
コンソールには実際のエラー行番号は表示されず、assert
関数の行が表示されることに注意してください。これはデバッグには役立ちません。
webpack を使用する場合は、node.js アサーション ライブラリのみを使用できます。彼らは「汎用アサーション ライブラリを意図したものではない」と主張していますが、アドホック アサーションには問題ないようであり、とにかくノード空間に競合他社は存在しないようです (Chai は単体テスト用に設計されています)。
const assert = require('assert');
...
assert(jqXHR.status == 201, "create response should be 201");
これを使用できるようにするには、webpack または browserify を使用する必要があるため、明らかに、これらが既にワークフローにある場合にのみ役立ちます。