問題タブ [cunit]
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 での exit() の単体テスト
テスト結果を表示する方法に CUnit フレームワークを使用しています。(私はプログラミングとSOの初心者なので、ステップバイステップの回答は本当に感謝しています)。
exit() を期待する関数をテストするときに、同じ CUnit フレームワークを使用できる方法はありますか? 私にはそうは思えませんが、とにかく尋ねたいと思っています-他のCUnitテストと一緒に合格/不合格の結果が表示されるので、理想的です。
そうでない場合は、他の初心者向けのソリューション (この SO 投稿など) を検討してきましたが、GOTO/setjmp/longjmp を使用できません。また、ソリューションは移植可能である必要があります。
このコードを実行するために Mac & gcc コマンドラインを使用しています。
EDIT提案された解決策の 1 つは、理想的に見える C プリプロセッサ (CPP) ディレクティブ / "mocking"を使用することです。test.c ファイルで以下のコードを使用しました。
端末が私に与えるエラーメッセージは次のとおりです。
(PHRASE) を削除しても、同じエラーが発生します。
編集 他の誰かに役立つ場合は、 #ifdef を使用してモックすることが、最終的にこの問題を解決する最も簡単な方法でした。こちらのサイトも参考になりました。
c - CUnit: 動的に生成された文字列で失敗する
バックグラウンド
CUnit はCU_FAIL
、選択したメッセージでテストの失敗を示すことができる機能を提供します。を呼び出すCU_FAIL("failure message")
と、囲んでいるテストが失敗し、 を含む文字列が出力されますCU_FAIL("failure message")
。
問題
失敗メッセージに問題のあるパラメーターを示したいと思います。char * message
などの目的のメッセージに変数を動的に設定して"Expected i = 5, but i = 6."
から呼び出すとCU_FAIL(message)
、テストは失敗しますが、文字列のみCU_FAIL(message)
が出力されます。の内容はmessage
印刷されません。
質問
動的に生成された文字列の内容を出力しているときに CUnit をテストに失敗させるにはどうすればよいですか? バージョン 2.1-3 を使用しています。