not_to change.by()不受支持

时间:2014-08-12 15:08:19

标签: ruby-on-rails rspec rspec3

我将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但没有not个关键字。

所以问题是如何期待没有变化?

1 个答案:

答案 0 :(得分:49)

幸运的是我希望没有任何变化(任何),所以我可以省略by()部分。它运作得很好!

  expect{@slide.destroy(force: false)}.to_not change(Slide.with_deleted, :count)