【问题标题】:Rspec should change count without lambdaRspec 应该在没有 lambda 的情况下更改计数
【发布时间】:2012-09-06 19:07:13
【问题描述】:

我正在尝试找出另一种编写应该更改计数测试的方法(没有 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

非常感谢!!

【问题讨论】:

    标签: ruby-on-rails-3 rspec shoulda


    【解决方案1】:
    subject { lambda { ... } }
    
    it { should change(Model, :count).by(1) }
    

    【讨论】:

    • 我一直在写这样的规范,实际上是想找到一种更简洁的方法来做到这一点。这是最好的选择吗?
    【解决方案2】:

    你也可以使用expect语法:

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

    【讨论】:

      猜你喜欢
      • 2014-01-03
      • 2019-11-09
      • 2014-03-08
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多