如何执行RSpec oneliner测试:count更改

时间:2019-05-24 14:39:46

标签: ruby-on-rails rspec

我们都喜欢单线,它们是如此酷 但它们也没有证件

我如何才能编写此代码的单行代码(目前运行良好)?

it "deletes the user" do
  expect { destroy_user }.to change(User, :count).by(1)
end

2 个答案:

答案 0 :(得分:2)

  

我该如何编写此代码

不能。 one-liner syntax是根据subject定义的,此测试根本不使用一个。此外,引用该文档:

  

单线语法仅适用于无障碍预期(例如   expect(obj).to eq等),并且不能与区块期望值一起使用   (例如expect { object })。

答案 1 :(得分:1)

我认为您的榜样是执行所需任务的唯一方法。

Rspec确实具有one-liner syntax,但仅适用于您的代码块具有主题且似乎不支持诸如destroy_user之类的动作。