substancelab / dotfiles

A set of configuration files, inspired by Thoughtbot, customized for our use.
MIT License
0 stars 1 forks source link

RSpec: should vs is_expected.to #27

Open koppen opened 2 years ago

koppen commented 2 years ago
it { is_expected.to have_and_belong_to_many(:category_groups) }

vs

it { should have_and_belong_to_many(:category_groups) }

rubocop-rspecs default er

RSpec/ImplicitExpect: Prefer is_expected.to over should.

I "normale" examples skriver vi også:

it "does stuff" do
    ...
end

og ikke

it "should do stuff" do
  ...
end

Og "normale" expectations bruger expect:

  expect(subject).to do_stuff
olepalm commented 2 years ago

Jeg hælder til rubocop-rspec default og dermed is_expected syntax.

Eneste anke ved det er, at shoulda-matcher eksemplerne bruger should syntax og det er deres preferred syntax https://github.com/thoughtbot/shoulda-matchers#should-vs-is_expectedto

should vs is_expected.to In this README and throughout the documentation, you'll notice that we use the should form of RSpec's one-liner syntax over is_expected.to. Beside being the namesake of the gem itself, this is our preferred syntax as it's short and sweet. But if you prefer to use is_expected.to, you can do that too:

Så der er en lille risiko for at is_expected syntax'en ikke bliver prioriteret så højt.

koppen commented 2 years ago

@skovsgaard Har du en holdning den ene eller anden vej her?

skovsgaard commented 2 years ago

Jeg kan bedst lide den semantiske værdi i it { should have_and_belong_to_many(:category_groups) }, men jeg ved ikke nok om, om der er en risiko for, at den ene formulering bliver prioriteret over den anden.

koppen commented 2 years ago

Fordele

should

is_expected_to

koppen commented 2 years ago

Givet ovenstående liste hælder jeg nok mest til at læne os op ad rubocop-rspecs default, som også passer med rspecs default syntax - selv om det er lidt mere knudret at læse og skrive.

olepalm commented 2 years ago

Så synes jeg vi skal holde os til det. Jeg føler ikke meget for hverken den ene eller den anden syntax, men fordelene ved is_expected.to vejer en anelse tungere imo.