備忘録です。
#エラー内容
OrderForm
商品購入
商品購入がうまくいく時
次の7項目が存在すれば購入できる→zipcide, prefecture_id, city, address, phone_number, user_id, item_id
建物名が空でも購入できる
商品購入がうまくいかない時
郵便番号が空では購入ができない
郵便番号にハイフンがないと購入できない
電話番号にハイフンがあると購入できない (FAILED - 1)
電話番号が11桁以内じゃないと購入できない (FAILED - 2)
Failures:
1) OrderForm 商品購入 商品購入がうまくいかない時 電話番号にハイフンがあると購入できない
Failure/Error: _query(sql, @query_options.merge(options))
ActiveRecord::StatementInvalid:
Mysql2::Error::ConnectionError: Lost connection to MySQL server during query
Mysqlでエラーが起こっているとのこと。
おそらくですが、先に読み込まれるべきデータより前に、後のものを読み込んでしまってエラーが起きている可能性があります。
#対処法
require 'rails_helper'
describe OrderForm do
before do
@order = FactoryBot.build(:order_form)
sleep(1)
end
先に読み込まれるものが無いように、1秒毎にテスト処理を行うことにしました。
テストの記述にsleep(1)を追記してあげることで、エラーを回避することができました。