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

実行中の例にアクセスする

カスタムマッチャの文脈では、現在の例グループから利用可能なヘルパーメソッドを呼び出すことができます。 これは、例えば rspec-rails によって使用され、テストコンテキストで利用可能なヘルパーメソッドに依存する Rails の組み込みアサーションをラップするために使用されます。

マッチャから例で定義されたメソッドを呼び出す

以下の内容で "example_spec.rb" という名前のファイルがあるとします:

RSpec::Matchers.define :bar do
match do |_|
foo == "foo"
end
end

RSpec.describe "something" do
def foo
"foo"
end

it "does something" do
expect("foo").to bar
end
end

rspec ./example_spec.rb を実行すると

出力に "1 example, 0 failures" が含まれるべきです。

マッチャから例で定義されていないメソッドを呼び出す

以下の内容で "example_spec.rb" という名前のファイルがあるとします:

RSpec::Matchers.define :bar do
match do |_|
foo == "foo"
end
end

RSpec.describe "something" do
it "does something" do
expect("foo").to bar
end
end

rspec ./example_spec.rb を実行すると

出力に "1 example, 1 failure" が含まれるべきです。

また、出力は /undefined.*method/ にマッチするべきです。

さらに、出力に "RSpec::Matchers::DSL::Matcher" が含まれ、"ExampleGroup" が含まれていないべきです。