RSpecのit “” do 〜 endが多すぎて遅くなったので纏めるための正規表現

正しくないことをしていることは、わかっています。
しかし、データが複雑に絡み合っていて、事前条件のデータを準備するのに時間がかかるので、
なるべくitの数を減らしながらデータを検証したい、と思いました。

つまり、テストにスピードが欲しい。
しかし、なんかあったときのためのコメントは残したい。

そういうことで、以下の正規表現を書いてみました。
なお、検証したのはRubyMine上でです。

検索対象: |it “(.+)” do\n((.|\n)*?)\s+end$|
置換文字列: | # $1\n$2|
(左右の|は含めないでください)

これを使うと

context "ほげ" do
  subject { "hoge" }
  it "hogeであること" do
    subject.should == "hoge"
  end
  it "piyoでないこと" do
    subject.should_not == "piyo"
  end
  it "fugaでないこと" do
    subject.should_not == "fuga"
  end
end

が、

context "ほげ" do
  subject { "hoge" }
    # hogeであること
    subject.should == "hoge"
    # piyoでないこと
    subject.should_not == "piyo"
    # fugaでないこと
    subject.should_not == "fuga"
end

というふうに置換することができるので、あとはit文を足して調整してください。

context "ほげ" do
  subject { "hoge" }
  it "正しくhogeであること" do
    # hogeであること
    subject.should == "hoge"
    # piyoでないこと
    subject.should_not == "piyo"
    # fugaでないこと
    subject.should_not == "fuga"
  end
end

こんなことしなくても、もっといい方法があるのにさー…とかありましたら、
教えてください!!!!(切実)


カテゴリー Ruby, Ruby on Rails | タグ | パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です