単体テストコードでエラーが出ているテストコードの修正をしたく記述修正し
再度テストコードのコマンドをターミナルで実行すると今まで正常にできていたテストコードでエラーが!
ActiveRecord::StatementInvalid:
Mysql2::Error::ConnectionError: Lost connection to MySQL server during query
最初は修正を加えたところが全体に起因していると仮説を立てたが
Mysql2::Errorについて調べてみると
どうやらクライアント側とサーバー間のパッケット量のキャパを超えてしまっていて処理ができないようだ。
そこでテストコードに
it "postal_codeが空では登録できないこと" do
@purehase_shipping.postal_code = ''
@purehase_shipping.valid?
expect(@purehase_shipping.errors.full_messages).to include("Postal code can't be blank")
sleep 1.0
end
sleepを記述した。
この記述をすることで指定した秒数処理を停止できる。
すなわち一度に処理しきれなかったデータを間隔を空けて処理できるようにする。
そうすることで今まで通り正常に処理できていたテストコードが通過。
tokenが空では登録できないこと (FAILED - 1)
postal_codeが空では登録できないこと
postal_codeのハイフンがないと登録できないこと (FAILED - 2)
municipalityが空では登録できないこと (FAILED - 3)
addressが空では登録ができないこと
phone_numberが空では登録ができないこと
phone_numberは11桁以内でないと登録できないこと
内容に問題ない場合
全てが正しく保存ができること
まだいくつか改善していないところがあるが別のエラーが原因のため
今回はご了承ください。
ちなみにsleepの秒数の間隔は好きに設定できるのでご自身の環境にあった秒数でお試しあれ!