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

0 投票する
3 に答える
1058 参照

c - C での exit() の単体テスト

テスト結果を表示する方法に CUnit フレームワークを使用しています。(私はプログラミングとSOの初心者なので、ステップバイステップの回答は本当に感謝しています)。

exit() を期待する関数をテストするときに、同じ CUnit フレームワークを使用できる方法はありますか? 私にはそうは思えませんが、とにかく尋ねたいと思っています-他のCUnitテストと一緒に合格/不合格の結果が表示されるので、理想的です。

そうでない場合は、他の初心者向けのソリューション (この SO 投稿など) を検討してきましたが、GOTO/setjmp/longjmp を使用できません。また、ソリューションは移植可能である必要があります。

このコードを実行するために Mac & gcc コマンドラインを使用しています。

EDIT提案された解決策の 1 つは、理想的に見える C プリプロセッサ (CPP) ディレクティブ / "mocking"を使用することです。test.c ファイルで以下のコードを使用しました。

端末が私に与えるエラーメッセージは次のとおりです。

(PHRASE) を削除しても、同じエラーが発生します。

編集 他の誰かに役立つ場合は、 #ifdef を使用してモックすることが、最終的にこの問題を解決する最も簡単な方法でした。こちらのサイトも参考になりました。

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

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 を使用しています。