LoginSignup
0
0

More than 1 year has passed since last update.

【RSpec】ハッシュの検証

Posted at

環境

Ruby 3.0.2
Rails 6.1.4.1

ハッシュの検証

今まではハッシュのkeysとvaluesがそれぞれ期待する値で返っているかどうか一つ一つ検証していた。

model.rb
User.published_articles
# => { user.id => [article1, article2], user2.id => [article3] }
spec.rb
expect(User.published_articles.class).to eq Hash
expect(User.published_articles.keys[0]).to eq user.id
expect(User.published_articles.values[0][0]).to eq article1
expect(User.published_articles.values[0][1]).to eq article2
expect(User.published_articles.keys[1]).to eq user2.id
expect(User.published_articles.values[1][0]).to eq article3

ハッシュの形のままeqで比較すれば良い

spec.rb
expect(User.published_articles).to eq(
   { user.id => [article1, article2], user2.id => [article3] }
)

ハッシュはハッシュは==で比較するときに要素の順序は考慮しないため
順番が入れ替わってもテストは成功する。

spec.rb
expect(User.published_articles).to eq(
   { user2.id => [article3], user.id => [article1, article2] }
)

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0