RSpec 3からPendingだけでなくSkipというものが増えていた

自分の知識が RSpec 2 時代で止まっている部分があることが再確認できた。

Pending and skipped examples - RSpec Core - RSpec - Relish

  • skip と mark された example は実行されない
  • pending と mark された example は実行される
    • failure でも spec 全体では fail しない
    • 逆に pass するともう pending すべきではないと教えるために全体では fail になる

ということらしい。

つまり、「時々落ちる」けど「基本的には動くことが分かっているもの」1 は pending にしても spec 全体ではやはり「時々落ちる」ことになってしまう。pending ではなく skip にしておくと安定して通る。実行しないので。

一時的に skip にしてあとで直すということをするとよいらしい。

※ 個人的には it を xit にする、describe を xdescribe にする、という prefix 方式は commit に残すのは分かりにくいのでやめた方がよいと思う。手元でだけ一時的に書き換えるのはアリだと思うけど。

  1. 例えば random な要素を入れてしまっているために落ちることが分かっている 

More