TDD в Codeigniter: как издеваться над базой данных? - PullRequest
1 голос
/ 18 февраля 2012

Я пытаюсь TDD в Codeigniter, и я застрял. Я использую TOAST и хочу протестировать простую функцию, не касаясь базы данных ...

function test_get_products_by_user_id()
{
}

Как создать макет базы данных для такого случая? Я не хочу запрашивать базу данных для таких тестов.

Ответы [ 2 ]

2 голосов
/ 19 февраля 2012

Рассматривали ли вы использовать что-то вроде HypersonicSQL?

Это создаст базу данных в памяти, которая будет действовать как ваша настоящая база данных.Вы должны настроить его каждый раз, когда хотите запустить модульные тесты.

1 голос
/ 03 мая 2012

Несмотря на то, что я хотел избежать запросов к реальной базе данных, ответом на это является создание отдельной базы данных и заполнение ее фиктивными данными для тестирования. Вы можете легко переключать базу данных при запуске тестов - это написано в документации

"Причина, по которой мы используем многомерный массив, а не более простой, заключается в том, что вы можете дополнительно хранить несколько наборов значений соединения. Если, например, вы используете несколько сред (разработка, производство, тестирование и т. Д. ) в одной установке вы можете настроить группу соединений для каждой, а затем переключаться между группами по мере необходимости. Например, для настройки «тестовой» среды вы должны сделать следующее: «

$db['test']['hostname'] = "localhost";
$db['test']['username'] = "root";
$db['test']['password'] = "";
$db['test']['database'] = "database_name";
$db['test']['dbdriver'] = "mysql";
$db['test']['dbprefix'] = "";
$db['test']['pconnect'] = TRUE;
$db['test']['db_debug'] = FALSE;
$db['test']['cache_on'] = FALSE;
$db['test']['cachedir'] = "";
$db['test']['char_set'] = "utf8";
$db['test']['dbcollat'] = "utf8_general_ci";
$db['test']['swap_pre'] = "";
$db['test']['autoinit'] = TRUE;
$db['test']['stricton'] = FALSE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...