我将rspec版本从2升级到3.这是我遇到的问题之一:
Failures: 1) Slide after .destroy(force: false) visible if .with_deleted Failure/Error: expect{@slide.destroy(force: false)}.to_not change(Slide.with_deleted,:count).by(1) NotImplementedError: `expect { }.not_to change { }.by()` is not supported # ./spec/models/slide_spec.rb:36:in `block (3 levels) in <top (required)>'
在rspec’s changelog我可以看到它从来没有被支持(oink?!@#).同时还有some examples how to use change syntax但没有关键字.
那么问题是如何期待没有变化?
解决方法
幸运的是我希望没有改变(任何),所以我可以省略()部分.它的工作很好!
expect{@slide.destroy(force: false)}.to_not change(Slide.with_deleted,:count)