問題タブ [catch-unit-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.

0 投票する
2 に答える
957 参照

c++ - Catch フレームワークを使用して C++ テンプレート クラスをテストする

Catch を使用してテンプレート化されたクラスをテストする良い方法を探しています。私はほとんど動作するものを持っています:

このセットアップは、最初の失敗までのみ実行されます。これは、8 つのケースすべてが同じように失敗する可能性が高いため、問題ありません。ただし、障害が発生したときにどのテンプレート引数のセットが使用されているかを知っておくと便利です。私の考えはこれを行うことです:

ただし、RUN_ALL で複数の INFO を使用することはできません。これを行うと、重複した識別子を持つコードが生成されるためです。

(RUN_ALL(test_number_one)は 270 行目に表示されます。)

すべてのテスト関数を同じ署名にする必要がない回避策のアイデアはありますか?

(また、CATCH を使用したテンプレート コードのテストに関する記事へのポインタ、および一般的な例外処理 (つまり、try/catch) に関する多くの結果を取得せずにそのような記事を検索する方法に関する提案も歓迎します。)

0 投票する
2 に答える
135 参照

c++ - C++ TDD でオーバーロードされた const メソッドと非 const メソッドを呼び出す良い方法は?

全て

イテレータを備えたいくつかの派手なコンテナを作成しました。ので、私は持っています

テストでは、コンテナをインスタンス化し、それを埋めてテストします。const バージョンと非 const バージョンの両方を呼び出すための受け入れられた/良い方法は何ですか? たとえば、次のような簡単なテスト

const イテレータだけでなく、イテレータに対しても実行する必要があります。定数参照?いくつかの醜いキャスト?

0 投票する
0 に答える
172 参照

c++ - Catch は MinGW32 で正常にコンパイルされますが、Segmentation Fault が発生します

Catchでテストを書いてみることにしました。WindowsでMinGW32を使用しています。ここで定義されているサンプルファイルを使用しました(便宜上、以下に再現します):

プログラムをコンパイルするために次の行を実行しています。

エラーはまったく発生しませんが、実行するとセグメンテーション違反が発生します。

これに続いて、独自のmain()関数を提供してみました。コードは次のようになります。

それでもセグメンテーション違反が発生します。

これは MinGW との非互換性ですか? 誰もこの問題に遭遇しましたか?

0 投票する
1 に答える
628 参照

c++ - デバッグモードの単体テストでアサートをバイパスする方法は?

テスト ケースでは、デバッグ モードで無効な入力に対してアサーションを生成する関数をテストしたいと考えています。残念ながら、これはCatchテスト ランナーを停止します。テストランナーが継続するように、このアサーションをバイパスする方法はありますか?

これが私のテストケースです:

0 投票する
1 に答える
1108 参照

c++ - C++ Catch 単体テスト フレームワークと CMake の統合

Visual Studio 2015 を使用してアプリケーションを開発しています。

ソリューションには 6 つのプロジェクトがあり、そのうち 5 つがライブラリで、1 つが実行可能ファイルです。

実行可能プロジェクトにはテスト ファイルが含まれており、テストに使用Catch frameworkしています。したがってcpp、実行可能プロジェクトには 5 つのファイルがあります。を使用して各テストを 1 つずつ実行するにはどうすればよいCMakeですか?

add_testの関数CMakeは、実行可能ファイル名をコマンドとして受け取り、すべてのテストを一度に実行します。各テストを個別に実行する必要があります。

0 投票する
1 に答える
475 参照

c++ - キャッチしない例外をキャッチする

Catch を使用して単体テストを記述していますが、REQUIRE_THROWS_AS. これは私のテストです:

そして、これは私のコンソールで発生する例外です:

この例外をキャッチすることを理解していれば、まさにキャッチしようとしているものですよね?