Rspec应该在没有lambda的情况下改变计数

ath*_*hap 11 rspec shoulda ruby-on-rails-3

我试图找出另一种写应该改变计数测试的方法(没有lambda).我正在使用Rails 3.我也在使用shoulda matcher gem

原因 - 所有测试用例都采用格式

describe "some stuff" do
   it { should ... }
 end
Run Code Online (Sandbox Code Playgroud)

但我无法按照相同的模式来测试应该更改计数

这就是我所拥有的

describe "some stuff" do
    it "should change count by one" do 
        lambda { ... }.should change(Model, :count).by(1)
    end 
end
Run Code Online (Sandbox Code Playgroud)

有没有办法写它

describe "some stuff" do
   it { should change(Model, :count).by(1) }
 end
Run Code Online (Sandbox Code Playgroud)

非常感谢 !!

meg*_*gas 30

subject { lambda { ... } }

it { should change(Model, :count).by(1) }
Run Code Online (Sandbox Code Playgroud)


use*_*493 5

您还可以使用expect语法:

describe "some stuff" do
  expect { ... }.to change(Model, :count).by(1)
end
Run Code Online (Sandbox Code Playgroud)