RSpec で同じ検証を複数のテストデータに対して行いたい

いろんなサンプルに対して「全部のデータ/パターンでちゃんと処理できているかを検証したい」という場合、RSpecだと書き辛いなぁ、と思ったんですが、良く考えれば何のことはない、specファイルも普通のRubyスクリプトなんですよね。

というわけで

# xxx_spec.rb

# もちろん普通に書いてもいい。
context "BDDで作るよ" do
  specify "一歩一歩作っていきますよ、そりゃもう。" do
  end
end

# 以降はいろんなパターンを通しまくりたい
Dir.glob("path/to/test_data/*") do |test_data|
  context "#{test_data} をホゲる場合" do
    setup do
      @process = lambda{ result = Hoge.process(test_data) }
    end

    specify "処理例外が発生しないこと" do
      @process.should_not_raise Hoge::ProcessError
    end

    specify "処理結果がnilでないこと" do
      result = @process.call()
      result.should_not be(:nil)
    end
  end
end

でOKでした。当然といえば当然ですが。