更改模型计数的更具可读性的请求规范

Cod*_*ith 3 rspec ruby-on-rails

我有以下通过的 rspec 请求规范示例

it "increases count by 1" do
  attributes = attributes_for(:district)
  expect { post admin_districts_path, params: { district: attributes} }.to change { District.count }.by(1)
end
Run Code Online (Sandbox Code Playgroud)

expect线是有点忙,所以我试图打破它。以下导致错误

it "increases count by 1" do
  attributes = attributes_for(:district)
  block = { post admin_districts_path, params: { district: attributes} }
  expect(block).to change { District.count }.by(1)
end
Run Code Online (Sandbox Code Playgroud)

有错误

syntax error, unexpected '}', expecting keyword_end
Run Code Online (Sandbox Code Playgroud)

为什么会发生此错误?有没有更简洁的方法来编写这个规范示例?

asc*_*man 6

我通常在测试中遇到这种长线。我所做的不是为了提高阅读而创建新变量,而是将其分成不同的行,如下所示:

it "increases count by 1" do
  attributes = attributes_for(:district)
  expect do
    post admin_districts_path, params: { district: attributes}
  end.to change { District.count }.by(1)
end
Run Code Online (Sandbox Code Playgroud)