如何检查RSpec / Rails中的所有模型中是否没有创建记录?

时间:2015-09-28 08:33:47

标签: ruby-on-rails ruby rspec

我知道如何检查是否在一个模型中创建了记录。

expect{Counter.increment}.to_not change{Counter.count}.by(1)

https://www.relishapp.com/rspec/rspec-expectations/v/2-2/docs/matchers/expect-change#expecting-no-change

现在,有没有办法检查RSpec / Rails中的所有模型中是否没有创建记录?

1 个答案:

答案 0 :(得分:2)

这是检查所有应用程序表中记录数的方法:

ActiveRecord::Base.send(:subclasses).inject(0){ |result, a| result += a.all.size }

关于在测试用例中使用它 - 嗯..我认为没有任何理由这样做 - 考虑重构测试而不是诉诸于这些hackery东西。

如果您仍想使用它,请测试..好吧,请使用我原来的答案:

expect(your_something).to_not change{ ActiveRecord::Base.send(:subclasses).inject(0){ |result, a| result += a.all.size } }