11

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

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

describe "some stuff" do
   it { should ... }
 end

但是我无法遵循相同的模式来测试应该更改计数

这是我所拥有的

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

有没有办法写

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

非常感谢 !!

4

2 回答 2

30
subject { lambda { ... } }

it { should change(Model, :count).by(1) }
于 2012-09-06T19:15:01.067 回答
5

您还可以使用期望语法:

describe "some stuff" do
  expect { ... }.to change(Model, :count).by(1)
end
于 2013-09-16T16:30:02.393 回答