問題タブ [assert]
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.
iphone - スレッドでの NSAssert の使用
NSAssert
予期しない状況が発生した場合、アプリケーションがすぐに失敗してクラッシュ ログに意味のあるメッセージが表示されるように、iPhone アプリ全体で使用しようとしています。
これは、失敗NSAssert
がメインスレッドにある場合、NSInternalInconsistencyException
デフォルトで発生し、キャッチされずに実行を停止するため、正常に機能します。しかし、私はバックグラウンド スレッドでも処理を行っています。この場合、NSAssert
スレッドは中止されますが、プログラミングは実行され続けます。
私の現在の解決策は、メイン スレッド (この場合はNSOperation
のmain
メソッド) で例外をキャッチして再スローすることです。
より良い方法はありますか?おそらくカスタム NSAssertionHandler を使用していますか?
assert
私は、静的注釈でC を使用できることを知っています。
しかし、これでは の実際の失敗値が何であるかを示すことはできませんx
。
c - 複雑なマルチスレッド コードのセーフティ ネット?
プロジェクトで数千行の複雑なマルチスレッド「C」コードを書き終えたばかりの開発者として、将来このコードに不慣れな他の開発者によって拡張、変更などが行われる予定です。皆さんは、そのようなコードにどのようなセーフティ ネットを入れようとしていますか? 例として、私はこれらを行うことができます:
- 対応するロックが保持されていることをアサートする、ロックで保護された構造体メンバーのアクセサー マクロを定義します。これにより、このコードに不慣れな人には、これらのメンバーがロックで保護されていることが明確になります。
- スピンロックが保持された状態で呼び出されるはずの関数は、スピンロックが保持されていることをアサートします。
あなたが書いたマルチスレッド コードには、どのようなセーフティ ネットが組み込まれていますか?
他の開発者がそのようなコードを変更したときに、どのような問題に直面しましたか?
そのようなコードには、どのような種類のデバッグ支援が組み込まれていますか?
コメントしてくれてありがとう。
unit-testing - Log4Net のアサーティング アペンダ?
Log4Net出力に対してアサーションを導入する「標準的な」方法はありますか?
例えば
または
Log4Net のアサーティング アペンダーをコーディングすることはできましたが、既に何かあるはずだと思いましたか?
c# - C# での同じ結果に対する複数のアサートのベスト プラクティス
結果に対して複数のアサートを行う最もクリーンな方法は何だと思いますか? 過去に私はそれらをすべて同じようにテストしましたが、これは少し汚れているように感じ始めています.セットアップを使用して別のアイデアで遊んでいます.
cuda - カーネル呼び出し内でassertを使用する
デバイスモードでのカーネル呼び出し内でアサートを使用するための便利な方法はありますか?
c# - ExceptionAssertsとVSでのC#プロジェクトのデバッグ
しばらくの間、NUnitとVisualStudioを使用してC#.NETコードを記述してきました。例外のテストは、次のスタイルで行われました。
古い構文:
現在、NUnitはバージョン2.5.2をリリースしましAssert.Throws( Type expectedExceptionType, TestDelegate code );
た。これにより、例外テストがはるかに柔軟になります。例外テストは次のようになります。
新しい構文:
私たちの問題は、Assert.Throwsが使用されている場合、NUnit(コンソールまたはGUIランナー)がプログラムのデバッグに使用されているときに、VisualStudioが未処理の例外を示すウィンドウを表示することです。
これを明確にするために、デバッグ時にnunit-x86.exeを実行するように単体テストを含むVSプロジェクトを設定しました。(プロジェクトのプロパティ、デバッグタブを参照してください。開始アクションは、nunit-x86.exeを実行するように設定されています)
これにより、NUnitはテストを続行できなくなります。F5キーを押してデバッグ/単体テストを続行することは可能ですが、これは実行可能な解決策ではありません。
これを回避する方法はありますか?Assert.Throwsの周りにtry...catchブロックを配置すると、デリゲートコードで例外が発生するため、何も実行されません。
誰かがこれに光を当てることができることを願っています。
unit-testing - NUnit と Log4Net の統合: ログに基づくアサート
これは、スタック オーバーフローに関する私の最初の質問です。Googleまたはstackoverflowで答えを見つけることができませんでした。
nunit テストで log4net を調べてログ内の特定のエントリを調べ、その検索結果に基づいてアサートすることに興味があります。
私が読んだ無関係の投稿に基づいて:log4net、おそらくMemoryAppenderを使用して、GetEventsメソッドを介してこれを行い、返されたイベントの配列を熟読できると思います。
しかし、私は疑問に思っています: 1. 誰かがこれをやったことがありますか? 落とし穴や提案はありますか?代替アプローチはありますか?2. 提示できるレシピはありますか?
ありがとう。
c# - 引数を冗長にテストする必要がありますか(コレクションの空など)?
ここでの冗長コレクションのチェックに問題がありますか?:
python - Python の assert ステートメントの許容可能なユースケースは何ですか?
私はしばしば python の assert ステートメントを使用してユーザー入力をチェックし、破損状態にある場合はフェイルファストします。-o
(最適化された)フラグを使用してPythonを実行すると、アサートが削除されることを認識しています。個人的には、最適化モードでアプリを実行することはありませんが、念のため assert を避けるべきだと感じています。
書いたほうがすっきりした感じ
よりも
これは assert の有効な使用例ですか? assert
そうでない場合、Pythonのステートメントの有効なユースケースは何ですか?