問題タブ [catch2]
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++ - Catch2 - 異なるテスト ファイルの異なるモック データをシングルトンに入力する
C++ プロジェクトで単体テストに Catch2 を使用しています。シングルトン クラスがあり、別のテスト ファイルで使用されています。たとえば、あるファイルがシングルトン自体をテストし、別のファイルがシングルトンと別のコンポーネント間の相互作用をテストしている場合があります。そのため、シングルトン クラスにテスト ファイルごとに異なるモック データのセットを設定する方法があるかどうか疑問に思っていました。
私の知る限り、私には2つの方法があるようです。
- テスト ケースとセクションの使用
TestA.cpp
TestB.cpp
ただし、これはセットアップ関数が各テスト ファイルで 2 回実行されることを意味します。これは必要ではなく、回避したいと考えています。また、すべてのテストを 1 つの SECTION/TEST_CASE にまとめる必要もありません。
- の使用
Listeners
Listener
独自のクラスを作成して登録し、メソッドとメソッドをオーバーライドtestCaseStarting
できることを理解していますtestCaseEnded
。これはすべての TEST_CASE に当てはまるようですが、TestA と TestB に異なる設定をしたいと考えています。
したがって、各テストファイルの最初と最後にセットアップと分解機能を実行するのと同じように、各テストファイルでシングルトンクラスを別々にセットアップできるより良い方法はありますか?
c++ - Catch2 使用時の未解決の外部シンボル エラー
Visual Studio で Catch2 単体テストを実行しようとしています。練習用に小さなテスト プロジェクトを作成しました。このテスト プロジェクトをコンパイルしようとすると、リンカー エラーが発生します。現在、このリンカー エラーを診断しようとしていますが、Catch2.hpp
ヘッダー ファイルには数千行のコードが含まれています。私の願いは、Catch2 や単体テスト全般に詳しい人が問題を診断できることです。
このプロジェクトを作成したプロセスについて説明します。新しいソリューションで新しいプロジェクトを作成しました。以下にリストされている4つのファイルがすべて同じディレクトリにあります。
テストしたいクラス:
テスト:
テストを実行する主な機能:
Catch2 テスト フレームワーク:
[ローカル Windows デバッガー] ボタンを使用して Visual Studio でこのコードをコンパイルしようとすると、多数の未解決の外部シンボル リンカー エラーが発生します。Catch2 が「部分的にコンパイルされている」ことをどこかで読んだと思います。それと何か関係があるのかもしれませんが、私にはわかりません。このガイド ( StackOverflow: Visual Studio で Catch2 を使用した単体テストのベスト プラクティス) に従うことでうまくいきましたが、上記の小さな例が正常にリンクされない理由を理解しようとしています。
完全を期すために以下のリンカーエラーを含めましたが、おそらく質問には必要ないと思います。
これらのエラーの原因は何ですか? catch.hpp
ソース ファイルと同じプロジェクトを維持しながら、これらのエラーを修正するにはどうすればよいですか?
c++ - testthat (& Catch) は R CMD チェックで xml2 ライブラリが見つからないことを訴えます
R パッケージ ( https://github.com/beerda/hexmatrix )をテストするために testthat を使用しています。最近、C++ のテストを開始testthat::use_catch()
しました。C++ Catch を使用した単体テスト用のパッケージをセットアップする必要がある を実行し、いくつかのテストを作成しました。によって実行された場合、テストは正しく実行されdevtools::test()
ます。ただし、R CMD check
またはを実行しようとするdevtools::check()
と、次のエラー メッセージが表示されます。
xml2 パッケージがインストールされ、rlang::check_installed("xml2") が TRUE を返します。
何らかの形で接続されているかどうかわからない: コマンドを手動で実行しようとするとrun_cpp_tests("hexmatrix")
、次のエラーが表示されます。
何がうまくいかないのか誰にも分かりませんか?前もって感謝します。