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

基本的な構造 (describe/it)

RSpecは、コードの振る舞いの実行可能な例を作成するためのDSL(Domain Specific Language)です。これらの例はグループに整理されます。"describe"と"it"という単語を使用することで、次のような会話のような概念を表現することができます。

"アカウントが最初に開かれたときに説明します。" "残高はゼロです。"

describeメソッドは、例のグループを作成します。describeに渡されたブロック内で、describeまたはcontextメソッドを使用してネストされたグループを宣言することができます。また、itまたはspecifyメソッドを使用して例を宣言することもできます。

内部では、例のグループはdescribeまたはcontextに渡されたブロックが評価されるクラスです。itに渡されたブロックは、そのクラスのインスタンスのコンテキストで評価されます。

1つのグループ、1つの例

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

RSpec.describe "something" do
it "does something" do
end
end

「rspec sample_spec.rb -fdoc」と実行すると、

出力には次の内容が含まれているはずです。

something
does something

ネストされた例のグループ (contextを使用)

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

RSpec.describe "something" do
context "in one context" do
it "does one thing" do
end
end

context "in another context" do
it "does another thing" do
end
end
end

「rspec nested_example_groups_spec.rb -fdoc」と実行すると、

出力には次の内容が含まれているはずです。

something
in one context
does one thing
in another context
does another thing