LoginSignup
59
51

More than 5 years have passed since last update.

Rspec の pending と skip って何が違うの?

Posted at

何が違うか知らなかった時に調べたメモ。ちなみに Rspec 3 の話。

簡単に言うと以下のとおり。外的な要因で一時的に落ちているけど、いずれ通るようになる example は pending にすれば良いと思われる。(参考資料

  • pending: example が失敗したらテストは成功になる
  • skip: example は実行されない

pending は何らかの事情で example が失敗する原因を修正できない場合に使えば良い。パッチがマージされるまで example が失敗する場合など。そのような時に pending を使っておけば、example が失敗する原因が修正されたときに(pending な example が成功することで)テストが失敗するようになるので、もう pending にしておく必要がないと気づくことができる。あるいは原因不明だけど example が失敗している場合も pending にしておけば、成功するようになった時に気づけるので良さそう。

一方 skip は example が実行されない。試行錯誤中に落ちる example を skip しておくのに良さそう。ただ、いずれ修正されるのなら pending が良いと思われる。もう通る見込みの無い古い example なら削除すればよいし。

ちなみに、skip するには itxit にするだけで良い。便利。

RSpec.describe "an example" do
  xit "is skipped using xit" do
  end

  xspecify "is skipped using xspecify" do
  end

  xexample "is skipped using xexample" do
  end
end
59
51
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
51