C#もIronRubyのRSpecでテストしちゃおうぜ

またしてもIronRubyネタ。

テストコードは納品するわけじゃないし、そもそも自分以外は誰もテストコード書いてくれないので(泣)、まぁNUnitもいいんだけど、RSpecならきっともっと楽ちんに違いないっていう流れ。

まずいい加減にこんな感じで配置してみた。

RSpecExample
├─spec
│  └─sample_spec.rb
└─src
    ├─RSpecExample
    │  ├─bin
    │  │  └─Debug
    │  ├─Properties
    │  │  └─AssemblyInfo.cs
    │  ├─RSpecExample.csproj
    │  └─Sample.cs
    └─RSpecExample.sln

主要なコードは下記。

いざテスト!

$ ir.exe -S spec -fs spec/sample_spec.rb

RSpecExample::Sample with args 'hoge', 'fuga' and 'piyo'
- should have 3 Words
- should == "hoge-fuga-piyo"
- should == "hfp"

RSpecExample::Sample with args 'hoge', 'fuga' and 'piyo' Greet
- should == "Hello hoge,fuga,piyo"

Finished in 0.453125 seconds

4 examples, 0 failures

おぉスゲー!けどやっぱ基本のマッチャがRuby向けなのでどうしても表現力が劣ってしまう…。端折るなよって話だけど、カスタムマッチャを作ればなんとかなるのかなぁ?でもそれを差し引いてもRSpecでやるってのはステキかもしれない。