2

C モジュールがあり、少しリファクタリングしたいと考えています。(module.h ファイルに) 非表示にされていないグローバル変数と構造がいくつかあります。この変数はいくつかのテストケースで使用していますが、他の場所では使用していないため、静的に設定することをお勧めします。私のテストケースでは、これらの変数を外部化し、テスト値を入力します。しかし、それらが静的変数になる場合、テストケースからそれらに到達できません。この変数を非表示にしたいので、getter および setter メソッドを作成して .h ファイルに配置したくありません。

.c ファイルをテスト ケースに含めると、静的変数が表示されます。これらの変数を埋める他の方法はありますか?

私は cygwin と gcc を使用しています。テスト フレームワークは CppUtest です。

前もって感謝します。

4

2 に答える 2

0

多くの場合、これらの静的変数を別のファイル (足場と呼ぶのが好きな人もいます) に作成して、.c. この背後にある基本的な理論は、.c ファイルを常にインクルードしていると、単体テストがすぐに不可能になるというものです。これは、単体テストの全体的な考え方が、残りのコードに依存せずに 1 ビットのコードをドリルダウンしてテストすることだからです。これらすべての外部 .c ファイルを含めたら、これを行うことはありません。

于 2011-11-23T16:30:16.233 に答える