我如何用rspec写这个

Mat*_*iby 5 tdd rspec ruby-on-rails capybara ruby-on-rails-3

我将我的rspec版本升级到最新版本,并且测试打破了具有类似语法的测试

it "should delete a company" do
  expect { click_link "Delete Company" }.should change(Company, :count).by(-1)
end
Run Code Online (Sandbox Code Playgroud)

我查看了文档,在目前的版本中我看不到任何可以做到这一点的任何内容......关于如何实现这一目标的任何想法

我得到的错误是

9) Company Pages Edit page as an admin user should delete a company
   Failure/Error: expect { click_link "Delete Company" }.should change(Company, :count).by(-1)
   NoMethodError:
     undefined method `call' for #<RSpec::Expectations::ExpectationTarget:0x007fccafdfc360>
   # ./spec/requests/companies_spec.rb:79:in `block (3 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

Dty*_*Dty 9

这是关于使用期望的文档

it "should delete a company" do
  expect { click_link "Delete Company" }.to change{Company.count}.by(-1)
end
Run Code Online (Sandbox Code Playgroud)

请注意以下更改

  1. shouldto
  2. (Company, :count){Company.count}