RSpec-Stories の書き方

RSpec/RSpecRails はとても良いのだけど、要素間の独立性が高すぎて別に統合テストが必要になる、RSpec-Stories なんだけど、どうやって書いたらいいのかよく分からない。

を参考にしながらやってみる。(相変らず attachment_fu試用した photoアプリケーションでやってます(attachment-fu/RMagick で画像アップロードサービス - Rubyとか Illustratorとか SFとか折紙とか, attachment-fu/RMagick で画像アップロードサービス(その2) - Rubyとか Illustratorとか SFとか折紙とか, Windowsでの attachment_fuプラグイン - Rubyとか Illustratorとか SFとか折紙とか, 2008-11-03 - Rubyとか Illustratorとか SFとか折紙とか)

storiesディレクトリにストーリー名のサブディレクト

storiesディレクトリの下に一段サブディレクトリを切ってそこにストーリーを書いて行く事になる様だが、サブディレクトリの基準はどうしたらいいんだろう。ユースケース毎と言うか、アクター毎とかなんだろうか。アクター毎にサブディレクトリを切り、夫々に幾つかのストーリーがあり、各ストーリーの中の一つひとつのシナリオが具体的なユースケースだとかいう認識でいいのだろうか、よく分からない。
兎に角サブディレクトリを切って、同名のファイル群をテンプレートから用意する。上記リンクにもあるとおり、GitHub - michaelklishin/storygen: RSpec stories generator for Ruby on Rails applications にジェネレータがあるのだけど、結局テンプレートファイルから簡単な三つのファイルを作るだけなので、下記を見ながら直接手で作る。

<名前>.rb は定型、ストーリー名称のみ差し替え。好みで「"」と「'」の使い分けとか、あと、ディレクトリ区切り文字「/」は直接書かずに File.join を使うほうがいいと思う。<名前>_steps.rb もストーリー名称のみ差し替え。<名前> (拡張し無し注意)プレーンテキストは別にコピーするほどの事でもなく、キーワード「Story」「Scenario」等注意、冒頭の説明は普通に日本語で。

Story: 取り敢えず普通に使ってみる

  普通ってなんだ

  Scenario: アップロードする
    Given Ruby is amazing piece of software design
    When action is triggered
    Then everything is gonna be alright

実行してみる、実行は stories/all.rb から。

[2760] ruby stories/all.rb
Running 1 scenarios

Story: 取り敢えず普通に使ってみる


  普通ってなんだ


  Scenario: アップロードする

    Given Ruby is amazing piece of software design

    When action is triggered

    Then everything is gonna be alright

1 scenarios: 1 succeeded, 0 failed, 0 pending