Я пытаюсь создать тест, который имитирует системный сбой, чтобы обеспечить целостность базы данных Oracle Berkeley DB XML. Потери данных в настоящее время испытываются во время операции вставки, поэтому я хотел бы настроить тест, который начинает вставлять произвольное количество документов и мешать процессу на этом пути (сродни тому, кто дергает шнур питания). После того, как процесс завершится, я хочу создать новый процесс и открыть базу данных, чтобы обеспечить ее правильное открытие.JUnit Проверяет ошибку базы данных?
Единичный тест является одним из многих в конструкции maven, и этот тест должен запускаться в среде linux и Windows XP. Мой текущий процесс состоит в том, чтобы выработать сценарий для обеих операционных систем, поскольку я могу использовать сценарий для уничтожения процесса и создания нового на своем месте. Есть ли у меня другие варианты? Могу ли я создать отдельное пространство процесса/VM с помощью JUnit?
Вы хотите протестировать базу данных? Или вы хотите протестировать свой код, который использует эту базу данных? –
Я хочу, чтобы он тестировал мой код, поскольку данная база данных встроена. Повреждение данных во время сбоя системы - это известная проблема с не-транзакционным DB Berkeley DB (который мы должны использовать). Я выполняю некоторые проверки работоспособности в моем коде оболочки, чтобы смягчить коррупцию. – toddk
Затем вы захотите написать модульные тесты, чтобы доказать, что ваши проверки работоспособности делают то, что они должны делать. Вы можете написать макет интерфейса БД и имитировать различные сбои, чтобы иметь детерминированное поведение. Основная проблема заключается в доказательстве того, что проверенные вами меры безопасности предотвращают описанную вами коррупцию. Я бы не сделал этого в модульном тесте, если ошибки не воспроизводятся при каждом испытании. Если это не так, я бы рассматривал тест как тест на перфективность/стабильность. – ShabbyDoo