0

私の理解が正しければ、以下のような形式でユーザーを作成しても、データベースにレコードは作成されません。

次の手順に従うシステム テストを作成したい:
1. フォームにサインアップする
2. アカウント ページにアクセスする
3. アカウント情報を更新する

上記のシナリオを実現するには、どのような手法を使用できますか?

within 'form#t-signup-form' do
    fill_in 'first_name', with: 'Eve'
    fill_in 'last_name', with: 'Farmer'
    fill_in 'email', with: 'eve@example.com'
    fill_in 'password', with: 'Something'
    find('button').click
end
4

1 に答える 1

1

ユーザー レコードが実際にデータベースにコミットされるかどうかは、トランザクション テストを使用しているかどうかによって異なります。トランザクション テストを使用している場合、レコードが実際にコミットされることはありませんが、(正しく構成されていれば) テストとアプリのすべてが同じコミット前トランザクションにアクセスし、レコードを参照する必要があるため、問題にはなりません。あなたが求めていることをするために、あなたはただするだろう

visit signup_path #whatever is the correct route to the page with the signup form
within '#t-signup-form' do
  fill_in 'first_name', with: 'Eve'
  fill_in 'last_name', with: 'Farmer'
  fill_in 'email', with: 'eve@example.com'
  fill_in 'password', with: 'Something'
  find('button').click
end
assert_content('You are signed up!') # assert for visible change in page that indicates signup has succeeded
visit account_path # route to whatever page you want to go to
... # do whatever actions are required to update the account
于 2017-12-02T00:19:54.970 に答える