2015-09-28 78 views
1

我知道如何检查一个模型中是否没有创建记录。如何检查在RSpec/Rails的所有模型中是否未创建记录?

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

为什么你认为你需要这样一个广泛的测试?你想达到什么目的? – spickermann

+0

我需要检查一个方法调用时是否没有副作用。 – user872176

回答

2

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

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

在测试情况下,使用它关于 - 嗯..我看不出有任何理由这样做 - 考虑重构了测试而不是采取这种骇人的东西。

如果你仍然想使用它,它的测试..好,去什么是我原来的答复:

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

这个工程!谢谢! – user872176

+0

我认为你是对的。测试用例不应该如此hachery ..无论如何这是很好的答案,谢谢! – user872176

+0

@ user872176没有probs,欢迎您! –

相关问题