RSpec & Rails: what not to write in `it`

vasily

Vasily Polovnyov

Posted on May 19, 2022

RSpec & Rails: what not to write in `it`

1. Useless, general words that bring no value:

# bad: what value? for what?
it "adds certain value"

# good
it "snoozes for an extra 5 minutes"


# bad: which result is correct?
it "returns correct result"

# good
it "returns user's initials"


# bad: how exactly it fails?
it "fails"

# good
it "raises a not found error"


# bad: formatted how?
it "returns formatted string"

# good
it "returns time in 24-hour format"

# bad: what 'ok' means?
it "is ok"

# good
it "creates draft invoices"
Enter fullscreen mode Exit fullscreen mode

2. Implementation details:

# bad
it "changes @scheduled_on"

# good
it "reschedules campaign"


# bad
it "sets @todos"

# good
it "assigns todos to a given user"
Enter fullscreen mode Exit fullscreen mode

3. Lies:

it "returns time in 24-hour format" do
  expect(...).to eq "9:25"
end

it "strips leading zeroes" do
  expect(foo(" 9:25 ")).to eq "9:25"
end
Enter fullscreen mode Exit fullscreen mode

See also:
RSpec Style Guide
Better Specs

đź’– đź’Ş đź™… đźš©
vasily
Vasily Polovnyov

Posted on May 19, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related