問題タブ [boost-test]
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++ - Boost.Testを使用して例外が予期されることをどのように指定しますか?
テスト対象のオブジェクトに例外をスローさせるBoostユニットテストケースがあります(これがテストであり、例外が発生します)。その特定の例外を予期するようにテストで指定するにはどうすればよいですか。
BOOST_AUTO_TEST_CASE_EXPECTED_FAILURESを使用して、テストに特定の数の失敗があることを指定できますが、それはかなり不特定のようです。テストの特定の時点で、例外をスローする必要があり、失敗としてカウントしないようにする必要があると言えるようにしたいと思います。
c++ - C++ 単体テスト フレームワークの比較
C++ 単体テスト フレームワークの推奨事項に関して既にいくつかの質問があることは知っていますが、フレームワークの 1 つを推奨するだけで、(機能) 比較に関する情報を提供していないため、すべての回答は役に立ちませんでした。
最も興味深いフレームワークは、CppUnit、Boost、および新しい Google テスト フレームワークだと思います。誰もまだ比較をしたことがありますか?
c++ - Boost Test フレームワークでの assert のテスト
Boost Test フレームワークを使用して C++ コードの単体テストを行っていますが、関数がアサートするかどうかをテストできるかどうか疑問に思っています。はい、少し奇妙に聞こえますが、ご了承ください。私の関数の多くは、エントリ時に入力パラメーターをチェックし、それらが無効かどうかをアサートします。これをテストすると便利です。例えば:
私はこのようなことができるようにしたいと思います:
Boost Testを使用してスローされている例外を確認できるので、assertマジックもあるのだろうか...
c++ - Boost.Spirit の単体テスト
Boost.Spirit と Boost.Test は初めてなので、文法の正確性をどのように検証しているか知りたいです。以下は、現時点で私が行っている方法の簡略化されたバージョンであり、より良い方法があると確信しています。
各テスト ケースには、解析するテキストと、セミコロンで区切られた期待される結果を含む 2 つの文字列のペアがあります。
解析関数は実際の解析を行い、期待される結果と等しい文字列を返します。
c++ - boost::test の CppUnit プロテクターと同等ですか?
と の両方を C++ 単体テストに使用CppUnit
しboost::test
ました。boost::test
主に、自動テスト マクロがテストをセットアップする労力を最小限に抑えるためです。しかし、私が本当に見逃していることが 1 つありCppUnit
ます。それは、実行されたすべてのテストを自動的にラップするインスタンスである、独自の「プロテクター」を登録する機能です。(技術的には、テスト「リスナー」をインストールすると、各テストをプロテクタースコープにラップできます)。
私は過去に、ユニットテストの予期しない副作用を監視するために、これらが非常に貴重であることを発見しました (たとえば、コードをチェックしても浮動小数点のユニット状態フラグが変更されていないなど)。boost::test
おそらく最も近いかもしれませんが、ドキュメンテーションには同等のものはありBOOST_FIXTURE_TEST_CASE
ません。
で CppUnit のプロテクターと同じことを達成するための最良の方法について何か提案はありboost::test
ますか?
boost::test
(の実装についてはまだ詳しく調べていませんが、そのようなものであればCppUnit
、プロテクター自体に非常によく似たものを使用する必要があります)。
c++ - Boost :: Test-Main()の生成?
ブーストテストライブラリの設定について少し混乱しています。これが私のコードです:
私のコンパイラは、非常に便利なエラーメッセージを生成します。
BOOST_TEST_MODULE
Boost :: Testライブラリはmain()関数を生成していないようです-定義されているときはいつでもこれを実行するという印象を受けました。しかし...リンカーエラーは続きます。
何か案は?
ビリー3
編集:以下の正解で説明されているバグを回避するための私のコードは次のとおりです。
それが誰かに役立つことを願っています。
ビリー3
c++ - アプリケーションで奇妙な実行エラー
私が書いている単体テストには、ある種のポインターの問題があるようです。基本的には、一度構築されるとファイルに関する情報を返すクラスをテストしています。予想されるすべてのファイルが検出された場合、テストは正しく動作します。検出されたよりも多くのファイルが予想される場合、ルーチンはエラーを正しく報告します。しかし、予想よりも多くのファイルが検出された場合、実行可能ファイルはクラッシュします。デバッガーでステップスルーしようとすると、現在のコードポイントがメソッド全体にジャンプするため、これを追跡するのは困難でした.
私が間違っていることについてのアイデアはありますか?
これが私のコードです:
ありがとう!
ビリー3
代わりに次のコードを使用して問題を解決しました。
c++ - ブーストテストアプリケーションの初期化
新しいアプリケーションを使用した一般的なブーストテストと単体テストについて説明しているところですが、アプリケーションの初期化を処理する方法がわかりません(たとえば、構成ファイルの読み込み、データベースへの接続、組み込みのPythonインタープリターの起動など)。 。
この初期化プロセスをテストしたいと思います。また、アプリケーション内の他のほとんどのモジュールでは、初期化が正常に行われたことが必要です。
シャットダウンコードを実行する方法もありがたいです。
どうすればこれを行うことができますか?