Toshiyuki Kawanishi Blog


2008
12 . 11

燃え上がれC言語 その1 ― CSpec

CSpecってご存知ですか?

Rubyだと最近はTest::UnitよりもRSpecを使ってテストを書かれている方が多いと思います。TDDなどのプラクティスを採用する場合は、やはりテストを書いていて楽しいというのが大事。そのため、同じことをやるにも xUnit のコンテキストよりも BDD 的な書き方の方が好まれるのだと思います。

楽しそうでいいなーと思っていた私。C言語だからと諦めていた私。しかし、github で CSpec の開発が進んでいるということを発見してから認識が変わりました。C言語でもまだまだいけんじゃねってことです。

そう、CSpecとはC言語用の Behavior Driven Development フレームワークです。RSpec 意識した記法で記述することができます。ついでに、リポジトリを folk して出力結果に色が付くようにしてみました。こんな感じになります。

(Windows上のMinGWで動作させた模様)

※リポジトリのサンプルは {} や ; がないスタイルで書かれていますが、個人的にはC言語的に自然な {} 付きスタイルを好んで使用しています。


なお、色つきの CSpec のコードは以下から取得可能です。

ただ、autoconfが付いていないので以下のように手動で Make してインストールする必要があります(Windowsの場合は付属の VC プロジェクトでコンパイルすることも可能)。

 $ cd cspec/src
 $ make
 $ su
 $ cp libcspec /usr/local/lib
 $ cd ../inc
 $ cp * /usr/local/include

Working Effectively With Legacy Code の中で 著者の Michael が、C言語なんて捨てて C++ しなよと言っているかのようですが、C言語で奮闘されている方々頑張っていきましょう。 Let''s agile in C!

2010/03/14 kaorun55 C言語 CSpec BDD
2010/03/04 p260-2001fp 『テストを書いていて楽しいというのが大事』『CSpecとはC言語用の Behavior Driven Development フレームワークです』 BDD TDD CSpec
2008/12/12 gtaka555