トップ «前の日記(2019-04-21) 最新 次の日記(2019-04-27)» 編集

2019-04-25 [長年日記]

_ 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 に残すのは分かりにくいのでやめた方がよいと思う。手元でだけ一時的に書き換えるのはアリだと思うけど。

Tags: Ruby RSpec

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