Как проверить настройку времени ожидания оператора postgresql в rails database.yml? - PullRequest
0 голосов
/ 03 июля 2019

Мне нужно добавить набор тестов для подтверждения конфигурации Rails database.yml.Я настроил тайм-аут инструкции db до 2000 мс, мне нужен способ утверждать, что конфигурация работает через контрольный пример.

Существует два способа проверки:

  1. Проверка этой базы данныхТайм-аут оператора .yml настроен на 2500 мс, но не проверяет, работает ли конфигурация или нет?
  2. Выполнить оператор SQL, который занимает более 2500 мс, и утверждать, что возникло исключение.
ActiveRecord::Base.connection.execute(<<~SQL)
  select pg_sleep(86400);
SQL

Этот код вызовет исключение, но на самом деле выполняется для 2500 мс, чтобы вызвать исключение, поэтому мне нужен способ подтвердить это, не дожидаясь 2500 мс.

ActiveRecord::Base.connection.execute(<<~SQL)
  select pg_sleep(86400);
SQL

1 Ответ

0 голосов
/ 03 июля 2019

По определению, нет способа проверить, работает ли тайм-аут без ожидания этого тайм-аута.

Что вы могли бы сделать, это установить намного меньшее значение тайм-аута конкретно для вашей тестовой среды (скажем, 500 мс) и утверждать, что исключение возникает после того, как вы спите в течение 600 мс.

...