访问正在运行的示例
在自定义匹配器的上下文中,您可以调用当前示例的示例组中可用的帮助器方法。例如,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 个示例,0 个失败”。
从匹配器调用未在示例中定义的方法
给定一个名为“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 个示例,1 个失败”
并且输出应匹配 /undefined.*method/
并且输出应包含“RSpec::Matchers::DSL::Matcher”
并且输出不应包含“ExampleGroup”。