我知道如何检查是否在一个模型中创建了记录。
expect{Counter.increment}.to_not change{Counter.count}.by(1)
现在,有没有办法检查RSpec / Rails中的所有模型中是否没有创建记录?
答案 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 } }