83

そのため、私は自分が関与している C++ プロジェクトで Google Test を使用するのが好きになり、楽しんでいます。私は、純粋な C (ライブラリ) になる新しいプロジェクトを立ち上げているところですが、今のところ理由がわかりません。 C++ フレームワークであるにもかかわらず、Google Test を使い続けないでください。C++ コンパイラが利用可能であることは問題になりません。

ストレート C コードのテストに Google Test を使用してはいけない特定の理由はありますか?

ありがとう。

4

5 に答える 5

79

C++ テスト フレームワークを使用して C コードをテストすることはかなり一般的であり、このテーマに関する主要な本でさえ、このアプローチに従っています。私はこれまで googletest を広範囲に使用して C コードの単体テストを行ってきたので、お勧めできます。

役立つかもしれないブログ投稿を書きました: http://meekrosoft.wordpress.com/2009/11/09/unit-testing-c-code-with-the-googletest-framework/

于 2011-06-02T18:01:18.297 に答える
16

すべての Google の C++ コードと同様に、Google Test は例外を使用しないため、例外の安全フローは問題になりません。ヘッダーが C++ 互換である限り (C++ キーワードを使用せず、シンボルを正しいリンケージでエクスポートする)、問題ありません。

于 2011-03-17T05:50:52.960 に答える
7

ジェイソン、気をつけて!!!:D

Meekrosoft が言ったように、はい、可能です。それをしようとしたときも彼のウェブサイトを使用しました。動作しますが、大きな問題が 1 つあります。

GTest はオブジェクト指向ツールですが、C 言語はそうではありません!

たとえば、GTest には、オブジェクトをパラメーターとして要求する多くの関数 (API 全体の 80%) があります。次に例を示します。

EXPECT_CALL(turtle, PenDown())              // turtle is object(class) and PenDown() is method of that object
      .Times(AtLeast(1));

GTest の Web サイトhttps://code.google.com/p/googlemock/wiki/ForDummiesから 、expect_equal、expect_bigger_than などのマクロのみを使用します...

CMokka (またはその他の C 単体テスト ツール)を使用することをお勧めします。これも google からのもので (google 以外の開発者グループによって変更されています)、C 言語用に直接作成されています。Cタイプのソースコードをテストしたいときにこれを使用します。

これがお役に立てば幸いです.. :-) 良い一日を.. :-)

于 2014-04-23T09:47:49.453 に答える
3

私は名前を付けることができませんでした。「通常の」CEg にはないものがいくつかあると思います。TestCase は特定のクラスから派生していると思います。しかし、テスト内では好きなものをテストできます。

于 2011-03-17T05:43:02.157 に答える