自分の知識が 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 に残すのは分かりにくいのでやめた方がよいと思う。手元でだけ一時的に書き換えるのはアリだと思うけど。
例えば random な要素を入れてしまっているために落ちることが分かっている ↩