Мок из базы данных
Я хотел бы написать обертку вокруг обращений к базе данных в приложении.
Пример в псевдокоде
CallDataBase (action, options,...) {
// Code for connectiong to DataBase
}
Тогда вы просто насмешка этой функции только вы, как и любой другой функции
CallDataBase (action, options,...) {
return true;
}
Таким образом, вы можете издеваться базы данных, не заботясь о том, что будучи вебсервис или соединение с базой данных или что-то еще. И вы можете вернуть его как истинное, так и другое.
Тест, как система обрабатывает ответ базы данных
Чтобы принять эту идею один шаг дальше и сделать тесты еще более мощным вы могли бы использовать какие-то параметры испытаний или параметров окружающей среды, чтобы контролировать то, что происходит в издевался выключения базы данных. Затем вы можете успешно проверить, как ваши коды передают различные ответы из базы данных.
Снова в псевдо-коде (если ваша база данных возвращает XML-ответ):
CallDataBase (action, options,...) {
if TEST_DATABASE_PARAMETER == CORRUPT_XML
return "<xml><</xmy>";
else if TEST_DATABASE_PARAMETER == TIME_OUT
return wait(5000);
else if TEST_DATABASE_PARAMETER == EMPTY_XML
return "";
else if TEST_DATABASE_PARAMETER == REALLY_LONG_XML_RESPONSE
return generate_xml_response(1000000);
}
и тесты, чтобы соответствовать:
should_raise_error_on_empty_xml_response_from_database() {
TEST_DATABASE_PARAMETER = EMPTY_XML;
CallDataBase(action, option, ...);
assert_error_was_raised(EMPTY_DB_RESPONSE);
assert_written_in_log(EMPTY_DB_RESPONSE_LOG_MESSAGE);
}
...
и так далее, вы получите точку. Обратите внимание, что все мои примеры являются отрицательными тестовыми примерами, но это, конечно же, можно использовать для тестирования положительных тестовых случаев.
Good Luck
Я думаю, "насмешливый базы данных" неправильный термин. Мы используем ezSQL на собственном уровне, и я хочу издеваться над ним, чтобы я мог проверить все остальное ... –