問題タブ [assertions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - Rでアサーションを作成するには?
RUnitの check* 関数を使用して前提条件/事後条件ステートメントを作成することをお勧めしますか、それともパフォーマンスなどに何らかのペナルティが伴いますか?
debugging - デバッグアサーションが.exe/wincore.cppで失敗しました
私はVC++6.0でRTシミュレーターを実行しています。Open Architecture Computer(OAC、フライト中のバスコントローラー)がオンになっていない状態で実行されると、プログラムは正しく実行されます。しかし、OACがオンの場合、プログラムはDebug / .exe/wincore.cppの行番号でDebugアサーションに失敗します。980.何が問題なのですか?可能であれば解決策を提供してください。
これは、copmleteDestroyWindow関数です。
java - Cobertura のカバレッジと assert キーワード
assert
テストでカバーされていないステートメントがあるため、Cobertura によって測定されたユニット テストのライン カバレッジに問題があります。イオンをテストする必要assert
がありますか? テスト範囲に影響を与えないように Cobertura にそれらを無視させる方法はありますか?
javascript - Ajax 駆動の JavaScript ランタイム アサーション フレームワーク
JavaScript コードの量が増えている大規模な Web アプリケーションに取り組んでいるときに、コードの品質を向上させる方法についてブレインストーミング セッションを行いました。
最初のアイデアの 1 つは、単体テストを導入することでした。これは長期的な目標です。ただし、回帰の最も一般的な原因である DOM の変更とブラウザー固有の問題は修正されません。
単体テストは、モック化された DOM のない環境で実行され、ページ上にはありません。
私が探しているのは、次のようにコードにプラグインできるアサーション フレームワークです。
これを実行できるアサーション フレームワークを見つけましたが、それらはすべて、コンソールまたは DOM にログインするか、ばかげたポップアップを開くかのいずれかです。これらのどれも (数千の) 自動化されたテストと連携して動作しません。 私が探しているのは、AJAX を介して失敗したアサーションをログに記録するランタイム アサーション フレームワークです! 理想的には、次のようにする必要があります。
- 一般的なアサーションが組み込まれています。
- JQuery モジュール、クロージャと統合します。
- (Ajax 経由で) アサーション、ファイル名、ページ、行番号、失敗の原因、環境の事前構成変数 (ブラウザー、リリース バージョンなど) をログに記録します。
- 失敗した場合のコールバックをサポートします。(これを実行できるアサーション フレームワークがあれば、Ajax 部分を実行するコールバックを喜んで作成します。)
- すべてのブラウザでうまく動作します。
- 生産リリースから除外するのは簡単です。
- 維持されたコードベース。
ruby-on-rails - Rails のテスト外でアサーションを使用する
実行時の動作をアサートするために、コントローラーとモデルにアサーションを入れ始めたいと思います。
単体テストで使用できるすべてのアサーション ヘルパーにアクセスするにはどうすればよいですか?
IEのようなことをしたい
必要なファイルはありますか?
language-agnostic - assert()とenforce():どちらを選択しますか?
Dで条件を「強制」するか、条件を「アサート」するかを選択するのに苦労しています(ただし、これは言語に依存しません)。
理論的には、アサーションを使用してバグを見つけ、他の条件を適用して非定型の条件をチェックすることを知っています。たとえば、メソッドの引数について言うかもしれませんassert(count >= 0)
。これは、呼び出し元にバグがあることを示しているためです。これはenforce(isNetworkConnected)
バグではないため、これは、あなたのコントロールを超えた正当な状況。
さらに、アサーションは、副作用なしに最適化としてコードから削除できますが、強制は常に条件コードを実行する必要があるため、削除することはできません。したがって、メソッドへの最初のアクセスで自分自身を埋める怠惰なコンテナを実装している場合は、enforce(!empty())
代わりに言います。これは、内部のコードを怠惰に実行するため、常にassert(!empty())
チェックが行われる必要があるためです。empty()
だから私は彼らが意味することになっていることを知っていると思います。しかし、理論は実践よりも簡単で、実際に概念を適用するのに苦労しています。
次のことを考慮してください。
他の2つの範囲を反復処理する範囲(イテレーターと同様)を作成し、結果を追加します。(機能プログラマーの場合:map!("a + b")
代わりに使用できることは承知していますが、質問を説明していないため、今のところ無視しています。)したがって、擬似コードで次のようなコードがあります。
それは主張か強制か?(範囲が同時に空にならないのは呼び出し元のせいですか?範囲がどこから来たのかを制御できない可能性があります-ユーザーから来た可能性があります-しかし、それでも、バグですね)
または、別の擬似コードの例を次に示します。
これはアサーションまたは強制のどちらである必要がありますか?パスはユーザーからのものである可能性があります(したがって、バグではない可能性があります)が、パスが有効であることがこのメソッドの前提条件です。主張または強制しますか?
ありがとう!
java - アサーションとの契約による部分設計
契約による設計の部分的な実施のアイデアについて、いくつかの意見を聞きたいと思います。目標は、外部ライブラリを必要とせずに、ライトバージョンのコントラクト(不変条件と事後条件のみ)を提供しない言語に追加することです。
私の例はJavaで書かれていますが、このアイデアは多くのオブジェクト指向言語に適していると思います。
次のようなクラスがあります。
上記のコードを次のように拡張します。
このアプローチの制限:
-前提条件はありません。
-コントラクトは継承されません(ただし、不変条件と事後条件は保護されており、サブクラスで再利用できることに注意してください)。
-不変条件と事後条件がオブジェクトの状態を変更しないというチェックはありません。したがって、副作用のリスクがあります。
-契約は明確な方法で私たちの文書の一部ではありません。
-すべてのクラスを複製可能にする必要があります。
さて、いくつかの質問:
-この方法はパフォーマンスに何らかの影響を及ぼしますか?アサーションが無効になっている場合、古いローカル変数とresローカル変数でさえJITコンパイラによって削除されるということですか?
-このアプローチの欠点はありますか?なぜあなたはあなたのクラスでこれを使わないのですか?
-改善を提案できますか?
読んでいただきありがとうございます。
c# - WPF と Winforms の UI スレッドかどうかを検出する
以下に、現在のスレッドが UI スレッドであることを確認 するアサーション メソッドEnsure.CurrentlyOnUiThread()を記述しました。
- これは、Winforms UI スレッドを検出する際に信頼できますか?
- 私たちのアプリは WPF と Winforms が混在していますが、有効な WPF UI スレッドを検出するにはどうすればよいですか?
- これを行うより良い方法はありますか?おそらくコード契約?
保証.cs
java - アサーションがデプロイメントで使用されない理由
アサーションが通常デプロイメントで使用されないのはなぜですか?パブリックメソッドの引数をアサートすることは不適切であると調査しましたが、デプロイメントではプライベートメソッドの引数をアサートすることが適切です。なぜですか?
java - How to enable Java assertions in jetty-maven-plugin?
How to enable assertions in jetty-maven-plugin? By default they are disabled.