2
1

More than 3 years have passed since last update.

【Rails】sequenceを使ってテストデータを作成する。

Posted at

sequenceというものを使ってテストデータを作成すると、テストデータをいい感じに作ることができる。

FactoryBot.define do
  factory :user do
    sequence(:name) { |n| "ごりら#{n}" }
  end
end

このような形でspec/factories/user.rbに記述する。
そして、rails cでuserを作成してみる。

irb(main):001:0> FactoryBot.create(:user)
   (2.4ms)  SET NAMES utf8mb4 COLLATE utf8mb4_bin,  @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'),  @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483
   (2.3ms)  BEGIN
  User Create (3.1ms)  INSERT INTO `users` (`name`, `created_at`, `updated_at`) VALUES ('ごりら1', '2021-08-23 08:32:54.454786', '2021-08-23 08:32:54.454786')
   (7.8ms)  COMMIT
=> #<User id: 11, name: "ごりら1", created_at: "2021-08-22 23:32:54", updated_at: "2021-08-22 23:32:54">

もう一度同じくcreateしてみる。

irb(main):002:0> FactoryBot.create(:user)
   (2.9ms)  BEGIN
  User Create (6.2ms)  INSERT INTO `users` (`name`, `created_at`, `updated_at`) VALUES ('ごりら2', '2021-08-23 08:33:04.147878', '2021-08-23 08:33:04.147878')
   (8.2ms)  COMMIT
=> #<User id: 12, name: "ごりら2", created_at: "2021-08-22 23:33:04", updated_at: "2021-08-22 23:33:04">

これでuser.nameごりら1とごりら2を作成することができた。

2
1
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
2
1