0
0

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 3 years have passed since last update.

今まで正常にできていたテストコードでエラーが!?

Posted at

単体テストコードでエラーが出ているテストコードの修正をしたく記述修正し
再度テストコードのコマンドをターミナルで実行すると今まで正常にできていたテストコードでエラーが!

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の秒数の間隔は好きに設定できるのでご自身の環境にあった秒数でお試しあれ!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?