ruby - :each - how to do on one line instead of do. .end block 之前的 rspec?

标签 ruby rspec

我的代码使用了一个 before :each block :

before :each do
  @unsorted=[1,5,6,7,4,5,8,4,2,5,2]
end 
it "contains an unsorted an array" do
  test_array = BubbleSort.new(@unsorted)
  expect(test_array.contents).to eq [1,5,6,7,4,5,8,4,2,5,2]
end 

我希望 before :each 代码是内联的,但使用

before :each {@unsorted=[1,5,6,7,4,5,8,4,2,5,2]}

给出:

syntax error, unexpected '{', expecting keyword_
end (SyntaxError)

我该如何解决这个问题?

最佳答案

当有一个 block 被写为 {} 时,Ruby 的语法不允许省略参数周围的括号。你需要做的:

before(:each){@unsorted=[1,5,6,7,4,5,8,4,2,5,2]}

关于ruby - :each - how to do on one line instead of do. .end block 之前的 rspec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19478235/

相关文章:

ruby - 测试回文

ruby-on-rails - 内容投票数据库和应用程序设计

ruby - Java 到 JRuby 到 Resque

mysql - 数据集太大,无法加载到内存中进行处理

ruby-on-rails - 如何在 rspec 中测试 css 属性?

ruby-on-rails - 在 CI 上使用 Cypress 启动 Rails 测试服务器

ruby - what is - gets is a directory - 错误信息

ruby-on-rails - Michael Hartl 的 Rails 教程 : Rspec's "Expected response to be a redirect to ..." is wrong

ruby - 验证 ActiveRecord 时,我得到有效? => false 但 errors.count 中没有错误。怎么来的?

ruby-on-rails - capybara webkit 驱动程序中的 javascript 确认对话框