З іншого боку: якщо з'єднання можна налаштувати, зменшіть час очікування рядка з'єднання до 1 секунди - це полегшить роботу. Заповніть таблицю наборами даних, і 3 інші процеси обертаються в циклі, оновлюючи фрагменти цієї таблиці транзакцією навколо циклу. Не змінюйте фактичну процедуру, що викликається програмою (введення очікування). Це робить тест інтеграції недійсним.
Але насправді, це тематичне дослідження на користь модульного тестування та введення залежностей. Деякі речі просто важко перевірити на інтеграцію. Одиничний тест + введення залежності .
- Реальний: код, який виривається -> Час очікування бази даних (важко відтворити).
- Рефактор: Код, який копається -> Сховище (робить доступ лише до даних) -> База даних
- Юніт-тест: код, який копається> Макет-сховище для викидання -> нуль
- Тепер у вас є невдалий тест на код, який вивалюється і може його виправити.
Це ін’єкція "залежності". Розробник може вводити залежність до бази даних, підмінюючи щось, що імітує поведінку залежності. Це добре зробити для всіх тестів бази даних. У будь-якому випадку, з наявним модульним тестом ви знаєте, що виправлення робить щось на зразок того, що повинно, але вам все одно потрібно інтеграційне тестування. У цьому випадку, можливо, краще зосередитись на регресії - це означає, що тестування не порушило нічого іншого, і функція все ще працює.
Ви вже створили свій патч, тому, мабуть, моя відповідь запізно.