28

rspec バージョンを 2 から 3 にアップグレードしました。これは私が直面した問題の 1 つです。

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 の changelogを見ると、サポートされていなかったことがわかります (oink ?!@#)。同時に、変更構文を使用する方法の例がまだいくつかありますnotが、キーワードはありません。

問題は、どうすれば変化がないと期待できるかということです。

4

1 に答える 1

62

幸いなことに、変更がないことを期待したいので、by()一部を省略できます。それはうまくいきます!

  expect{@slide.destroy(force: false)}.to_not change(Slide.with_deleted, :count)
于 2014-08-12T16:37:45.670 に答える