CMOCKERYは、Cユニットテストを作成するために使用される軽量ライブラリです。
CMOCKERYテストは、スタンドアロン実行可能ファイルにまとめられ、CMOCKERYライブラリ、標準Cライブラリ、およびテスト対象モジュールにリンクされています。テスト対象のモジュールの外部のシンボルは、テストアプリケーション内でテストによって決定された値を返す関数に置き換える必要があります。コードモジュールのターゲット実行環境とコードのテストに使用される環境の間には大きな違いが存在する可能性がありますが、その目標は機能レベルでコードモジュールのロジックをテストすることであり、必ずしもターゲット実行環境とのすべての相互作用ではないため、単体テストは依然として有効です。
モジュールを変更せずにテストアプリケーションにコンパイルすることはできない場合があります。したがって、モジュール内のコードを条件付きでテスト用にコンパイルできるように、cmockeryユニットテストアプリケーションがコンパイルされている場合、プリプロセッサ記号UNIT_TESTING定義する必要があります。
cmockeryを使用したテストの作成の仕組みに関する詳細情報は、 docs/user_guide.mdで見つけることができます。
cmockeryライブラリとLinuxのアプリケーションの例をコンパイルするには、実行します。
$ ./configure
$ make
Windowsでコンパイルするには、実行します。
> vsvars.bat
> cd windows
> nmake
このコードは、VC ++ 7およびVC ++ 8を使用してLinux(Ubuntu)とWindowsでテストされています。
利用可能なさまざまなCユニットテストフレームワークがあります。ただし、それらの多くはかなり複雑で、最新のコンパイラテクノロジーが必要です。一部の開発では、古いコンパイラを使用する必要があります。これにより、単体テストフレームワークを使用することが困難です。さらに、多くの単体テストフレームワークは、テストされているコードが、最終的にテストを実行するのと同じプラットフォームをターゲットにしたアプリケーションまたはモジュールであると仮定しています。この仮定のため、多くのフレームワークでは、テスト対象のコードモジュールに標準のCライブラリヘッダーを含める必要があります。これは、テスト中のコードによって使用されるCライブラリのカスタムまたは不完全な実装と衝突する場合があります。
CMockeryは、標準のCライブラリヘッダーとの競合を最小限に抑える標準Cライブラリにリンクされているテストアプリケーションのみを必要とします。また、CMockeryは、Cコンパイラの新しい機能のいくつかの使用を避けようとします。
これにより、Cmockeryは、さまざまなエキゾチックコードのテストに使用できる比較的小さなライブラリであることになります。開発者が最新のコンパイラでアプリケーションを単純にテストしたい場合は、他のユニットテストフレームワークが望ましい場合があります。
cmockeryについて質問がある場合は、次のリソースを使用してください。
スタックオーバーフロー: cmockeryタグを使用します
メーリングリスト: cmockery(at)googlegroups.com (アーカイブ)
Googleアカウントに参加するには、Web UIを使用します。任意の電子メールアドレスで購読/登録解除するには、以下にメールを送信します。
cmockeryは、Apache 2.0ライセンスに基づいてライセンスされています。詳細については、 LICENSE.txt参照してください。