問題タブ [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.
c++ - C++ でのポインターでの「アサート」の使用
C++ でポインターに「アサート」を使用する必要があるのはいつですか? また、使用する場合、最も一般的にはどのように実装されていますか?
c++ - ASSERT は冗長ですか?
このコードでは、ASSERT が冗長に見えます。ポインタが NULL の場合、pointer->x はとにかく失敗します。私の主張は正しいですか?
c++ - C ++でのアサートのコンパイル時チェック用のツールはありますか?
先日、c ++で関数を書いていましたが、間違いを防ぐためにコンパイラーがもっと多くのことを実行できることに気づきました。私のコードの本質はこのようなものでした-
そしてそれはこのように呼ばれました
明らかに、実行時にpがnullになる可能性があるため、デバッグビルドでメソッドのアサーションが失敗する可能性があります。私の間違い。
ただし、コンパイラがコンパイル時にこれをキャッチし、アサーションに違反している可能性があることを検出したことを示す警告を発行した可能性があります。
これは単純なケースであり、プログラムのフロー分析と各ポイントでの変数の可能な範囲の追跡に基づいて、コンパイラがそのポイントでポインタがNULLになる可能性があることを見つけるのはかなり簡単です。
多くのアサーションに違反するかどうかを判断するのは難しいと思いますが、アサーションに違反する可能性のあるコードを記述したことをコンパイラーが数回でも教えてくれた場合は、はるかに安全なプログラム。
たとえば、ループ内など、配列のインデックス作成で1つのエラーが発生するなどの問題に役立つと思います:-
多くの場合、コンパイラはコンパイル時にインデックス変数がこれらの範囲外にある可能性があることを証明し、コンパイル時に警告を発行できると思います。
これは、コンパイラーが通常実行するには非常に多くの作業になる可能性があることを認識していますが、おそらくこの種の分析を実行できるツールがいくつかありますか?私はグーグルで何も見つけることができませんでしたが、私はこの種のものが存在するかどうか疑問に思いましたか?それとも、たぶん役に立つのに十分なことをするのは難しすぎるのでしょうか?
java - ハムクレスト イコール コレクション
コレクションの等価性を比較するための Hamcrest のマッチャーはありますか? ありますが、具体的なコレクション型にバインドする必要はcontains
ありません。たとえば、 Arrays.asList と Map.values を Hamcrest と比較することはできません。containsInAnyOrder
equals
equals
前もって感謝します!
php - PHPと小数を使用したユニットテストアサーション
1.234567890のようなfloatを返すメソッドがあります。実際にそうなることをテストしたいと思います。ただし、この返されたフロートはプラットフォームごとに精度が異なるようです。戻り値が1.23456789であるとどのように主張しますか?私がするだけなら:
次に、十分な精度がない一部のプラットフォームでは失敗する可能性があります。
c - C assert を使用してコードをより安全にする方法は?
雑読。SDL 開発に関連するチュートリアル 2 つの異なる例を見つけました。同じことを別の方法で行っています。コードの「セキュリティ」と保守性の観点から判断すると、どちらが正しいと考えているのでしょうか。
最初の例では、プログラマーは assert をまったく使用していませんが、コードは (少なくとも私の目では) 問題ないように見えます。
2 番目の例では、[その他] のプログラマーが別のアプローチを使用しています (コードは正確にはコピー アンド ペーストではありません)。
2 番目の例のように、(最初の例の) if 条件を assert で「置換」しても問題ありませんか?
正しい戦略は何ですか (もしあれば) ?
c# - プロジェクトで Debug.Assert() が機能しなくなった
何らかの理由で、次の行は ASP.NET MVC プロジェクトで何もしません。
デバッグ構成を使用していることと、デバッグ構成設定で「デバッグ定数を定義する」がチェックされていることをトリプルチェックしました。
私のユニットテストプロジェクトでも同じ問題が発生します。
独自の assert メソッドを実装するのは些細なことのように思えますが、少し厄介です。これを修正する方法についてのヒントは大歓迎です。
編集:プロジェクトでいくつかのサードパーティ モジュールを使用しています。これは、リリース モードでコンパイルされたモジュールを参照することによって引き起こされる可能性がありますか?
php - これは php.ini で何を意味しますか?
それはどのように機能しますか?
iphone - assert が iPhone 用にコンパイルされたプログラムを単純に終了させるのはなぜですか?
assert() を多用した iPhone アプリ (Xcode、Objective-C++、およびデバイス シミュレーター) をデバッグしています。場合によっては、アサートの失敗により、期待どおりにデバッガーに侵入するのではなく、アプリが終了するだけでした。
私は次のような独自のアサートを実装することで回避策を作成しました。
(毛羽立ち省略)ですが、これに遭遇した人はいるのだろうか。いつ壊れていつ終了するかについてのパターンを特定できませんでした。コードはスレッド化されていません。行うことはすべて、イベント ハンドラーで行われます。
なぜこれが起こるのですか?どうすればバニラ assert() を条件付きブレークポイントのように動作させることができますか?