メインコンテンツまでスキップ

skipと一緒に使用する方法

RSpecには、実行されずにスキップされるべき例を示すためのいくつかの方法があります。

実装が提供されていない場合

次の内容で「example_without_block_spec.rb」という名前のファイルがあるとします。

RSpec.describe "an example" do
it "is a skipped example"
end

「rspec example_without_block_spec.rb」と実行すると、

終了ステータスは0であるべきです。

出力には「1 example, 0 failures, 1 pending」と表示されるべきです。

出力には「Not yet implemented」と表示されるべきです。

出力には「example_without_block_spec.rb:2」と表示されるべきです。

skipを使用してスキップする

次の内容で「skipped_spec.rb」という名前のファイルがあるとします。

RSpec.describe "an example" do
skip "is skipped" do
end
end

「rspec skipped_spec.rb」と実行すると、

終了ステータスは0であるべきです。

出力には「1 example, 0 failures, 1 pending」と表示されるべきです。

出力には次の内容が含まれるべきです。

Pending: (Failures listed here are expected and do not affect your suite's status)

1) an example is skipped
# No reason given
# ./skipped_spec.rb:2

例内でskipを使用してスキップする

次の内容で「skipped_spec.rb」という名前のファイルがあるとします。

RSpec.describe "an example" do
it "is skipped" do
skip
end
end

「rspec skipped_spec.rb」と実行すると、

終了ステータスは0であるべきです。

出力には「1 example, 0 failures, 1 pending」と表示されるべきです。

出力には次の内容が含まれるべきです。

Pending: (Failures listed here are expected and do not affect your suite's status)

1) an example is skipped
# No reason given
# ./skipped_spec.rb:2

itspecify、またはexampleの前にxを付けて一時的にスキップする

次の内容で「temporarily_skipped_spec.rb」という名前のファイルがあるとします。

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

「rspec temporarily_skipped_spec.rb」と実行すると、

終了ステータスは0であるべきです。

出力には「3 examples, 0 failures, 3 pending」と表示されるべきです。

出力には次の内容が含まれるべきです。

Pending: (Failures listed here are expected and do not affect your suite's status)

1) an example is skipped using xit
# Temporarily skipped with xit
# ./temporarily_skipped_spec.rb:2

2) an example is skipped using xspecify
# Temporarily skipped with xspecify
# ./temporarily_skipped_spec.rb:5

3) an example is skipped using xexample
# Temporarily skipped with xexample
# ./temporarily_skipped_spec.rb:8

メタデータを使用してスキップする

次の内容で「skipped_spec.rb」という名前のファイルがあるとします。

RSpec.describe "an example" do
example "is skipped", :skip => true do
end
end

「rspec skipped_spec.rb」と実行すると、

終了ステータスは0であるべきです。

出力には「1 example, 0 failures, 1 pending」と表示されるべきです。

出力には次の内容が含まれるべきです。

Pending: (Failures listed here are expected and do not affect your suite's status)

1) an example is skipped
# No reason given
# ./skipped_spec.rb:2

理由を指定してメタデータを使用してスキップする

次の内容で「skipped_with_reason_spec.rb」という名前のファイルがあるとします。

RSpec.describe "an example" do
example "is skipped", :skip => "waiting for planets to align" do
raise "this line is never executed"
end
end

実行するとき rspec skipped_with_reason_spec.rb を実行します

その後 終了ステータスは0であるべきです

かつ 出力には "1 example, 0 failures, 1 pending" が含まれているべきです

かつ 出力には以下が含まれているべきです:

Pending: (Failures listed here are expected and do not affect your suite's status)

1) an example is skipped
# waiting for planets to align
# ./skipped_with_reason_spec.rb:2