jackの勉強日記

勉強したことをアウトプットするための日記です。

テストコードでのエラー

コメント投稿機能を実装し、テストコードを書いていた際に

Failure/Error: _query(sql, @query_options.merge(options))

ActiveRecord::StatementInvalid:

Mysql2::Error: MySQL client is not connected

というエラーが発生しました。

何回かテストコードを実行するも、毎回エラーが発生するタイミングが違い、理由がよくわかりませんでした。

以前、テストのデータが膨大になるとエラーが発生すると聞いたことがあったので、今回がそのケースでは?と考えましたが、データの量も多くない上に、一応データ取得の際には「N+1問題」に気をつけてincludesメソッドを使用しているので一旦その可能性は排除しました。

別の方向性で調べていくと、読み込み速度が関係しているかもしれないという記事を発見し、その解決策を実行したところ無事エラーが解決しました。

解決策としてはbefore do ~endのなかにsleep(1)と記述することで、テストを1秒毎に実行するようにしました。

備忘録として残します。