如何在 Ruby 中使用动态数量的 yield 语句

How to use a dynamic number of yield statements in Ruby

  def within_page_frame
    application_tab = window_opened_by { click_link('Application Info') }
    within_window application_tab do
    within_frame find_by_id('ApplicationInfo') do
      yield
      end
    end
 end

 it 'should view the web page', :smoke do
   visit_home_page p
   application_tab = window_opened_by { click_link('Application Info') }
   within_page_frame {expect(find_by_id('home page').to be}
 end

这是当前可用的代码。我正在使用方法 "within_page_frame" 来避免在我的测试套件中的其他规范中重复代码。

我想做的是能够传入 多个 expect 语句 而不必在 within_page_frame 方法中指定 yield 语句的确切数量。有没有办法在我的方法中有一个 动态数量的 yield 语句 以便我可以传入任意数量的 expect 语句?

像这样?

within_page_frame do 
  expect(find_by_id('home page')).to be
  expect(find_by_id('something else')).to be
end