1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

rails cでFactoryBotを流す

Posted at

環境

Rails5.2

はじめに

test環境にテスト用データを整備したい場合、FactoryBotがよく使われるようです。FactoryBotを使って、rails cからテストデータを作ってみました。

内容

test環境のDBにログインするには、次のようにします。オプションを指定せずに、rails cをすれば、デフォルトで、develop環境にログインします。

$rails c -e test

ググると、次のコマンドが紹介されている記事も見かけますが、旧バージョンのRailsでの使い方になります。Rails5.2の環境ではエラーになります。

$ rails c test --sandbox
Running via Spring preloader in process 5472
DEPRECATION WARNING: Passing the environment's name as a regular argument is deprecated and will be removed in the next Rails version. 
Please, use the -e option instead. (called from <main> at /vagrant/raku_renkei/bin/rails:9)
Loading test environment in sandbox (Rails 5.2.8.1)
Any modifications you make will be rolled back on exit

エラーメッセージをGoogle翻訳してみると・・・
非推奨の警告: 環境の名前を通常の引数として渡すことは非推奨であり、Rails の次のバージョンでは削除される予定です。代わりに -e オプションを使用してください。 (/vagrant/raku_renkei/bin/rails:9 の から呼び出されます) サンドボックスにテスト環境をロードしています (Rails 5.2.8.1) 行った変更は終了時にロールバックされます

Userテーブルにデータを1件更新するためのFactoryBotのファイルです。名前空間を利用しているため、クラス名を明示的に指定しています。

spec/factories/users.rb
FactoryBot.define do
    factory :user, class: Master::User do
        name     {'テストユーザー'}
        name_id {'testuser'}
        password              { 'password' }
        password_confirmation { 'password' }
        admin { 'true' }
    end
end

コンソールでコマンドを流すと、Userテーブルにテストデータが1件更新されます。

>require 'factory_bot_rails'
>FactoryBot.create(:user)

確かに、テストデータが更新されたことを確認します。

>Master::User.find(1)

確認ができたら削除しておきます。

>Master::User.find(1).destroy
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?