C#たんでBDD
CoffeeScriptの続きをやろうかと思ったのですが、ちょっと気分を変えてWindowsを立ち上げてみました。
今回はVisualStudioでBDDをやるためにNSpecをちょこっと使ってみようかと思います。
Getting Started!
というわけで本家サイトへ。
NSpec - A testing framework that's like Mocha and RSpec, but for C#
基本的には本家サイトの通りに進めていきます。
適当なプロジェクトNSpecSampleを作り、NuGetでパッケージのインストール。
ちなみに.NETのバージョンは3.5と4.0に対応しているそうです。
PM> Install-Package nspec
特に問題なくインストールされました。
サンプルと同じようにコードを書きます。
class my_first_spec : nspec { void given_the_world_has_not_come_to_an_end() { it["Hello World should be Hello World"] = () => "Hello World".should_be("Hello World"); } }
コードを書き終えたらビルドします。
dllを指定して実行するので、ちゃんとビルドしておかないと期待通りに動かない事があります。
私もビルドを忘れて動きませんでしたw
というわけで、Package Manager Consoleから以下のように実行。
PM> NSpecRunner.exe NSpecSample\bin\Debug\NSpecSample.dll
サイトのサンプル通りに結果が表示されると思います。
最初は.NETなんだから.NETの書き方に従えや!って事でメソッド名をパスカル記法で記述したのですが、テストメソッドとして認識してくれませんでしたw
クラス名やnamespaceはパスカル記法でも問題なかったです。
別にRubyの記法が嫌いなわけではないのだけれど、やはりその言語に合わせた記法で書いて欲しいとは思います。
文句言うなら自分で作れって話なわけですがw
メソッド名を日本語にしてもちゃんと動きました。
class my_first_spec : nspec { void ウソみたいだろ_動くんだぜ_これ() { it["Hello World should be Hello World"] = () => "Hello World".should_be("Hello World"); } }
他の機能も試してみましたが、公式サイトにある通りちゃんと動作しました。
あまりにも簡単に動きすぎて書くことがなくなっちゃいました。
ハマったところとか面倒な設定周りとかを書くつもりだったのにw
IronRubyでRSpecを動かすという手もありますが、特に拘りがなければNSpecで十分です。
C#で何か作ることがあったら、次はNSpecを採用してみようかなぁと密かに考えています。