Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter中的TDD:如何模拟数据库?_Php_Codeigniter_Tdd - Fatal编程技术网

Php Codeigniter中的TDD:如何模拟数据库?

Php Codeigniter中的TDD:如何模拟数据库?,php,codeigniter,tdd,Php,Codeigniter,Tdd,我在Codeigniter中尝试TDD,我被卡住了。我正在使用TOAST,希望在不接触数据库的情况下测试一个简单的功能 function test_get_products_by_user_id() { } 如何为这种情况创建数据库的模拟?我不想在数据库中查询此类测试。您是否考虑过使用类似HypersonicSQL的东西 它将创建一个内存中的数据库,该数据库将像真实的数据库一样工作。但是,每次要运行单元测试时都必须设置它。您考虑过使用类似HypersonicSQL的东西吗 它将创建一个内存中的

我在Codeigniter中尝试TDD,我被卡住了。我正在使用TOAST,希望在不接触数据库的情况下测试一个简单的功能

function test_get_products_by_user_id()
{
}

如何为这种情况创建数据库的模拟?我不想在数据库中查询此类测试。

您是否考虑过使用类似HypersonicSQL的东西


它将创建一个内存中的数据库,该数据库将像真实的数据库一样工作。但是,每次要运行单元测试时都必须设置它。

您考虑过使用类似HypersonicSQL的东西吗


它将创建一个内存中的数据库,该数据库将像真实的数据库一样工作。但是,每次要运行单元测试时,都必须设置它。

尽管我不想查询真实的数据库,但解决方法是创建一个单独的数据库,并用虚拟数据填充它以进行测试。您可以在运行测试时轻松切换数据库-这是在

“我们使用多维数组而不是更简单的数组的原因是允许您选择性地存储多组连接值。例如,如果您运行多个环境(开发、生产、测试等)在单个安装下,您可以为每个组设置一个连接组,然后根据需要在组之间切换。例如,要设置“测试”环境,您可以执行以下操作:


尽管我希望避免查询真实的数据库,但解决方法是创建一个单独的数据库,并用虚拟数据填充它以进行测试。您可以在运行测试时轻松切换数据库-这是在

“我们使用多维数组而不是更简单的数组的原因是允许您选择性地存储多组连接值。例如,如果您运行多个环境(开发、生产、测试等)在单个安装下,您可以为每个组设置一个连接组,然后根据需要在组之间切换。例如,要设置“测试”环境,您可以执行以下操作:


干杯为什么人们会发明自己的单元测试框架呢?当行业标准是PHPUnit时,学习TOAST似乎是多余的。吐司支持嘲弄吗?从Codeigniter本身看,它不像,因为它到处都使用前端控制器和单例,很难用PHPUnit进行测试。吐司是为CI定制的。不是辩护,只是解释。干杯?为什么人们会发明自己的单元测试框架呢?当行业标准是PHPUnit时,学习TOAST似乎是多余的。吐司支持嘲弄吗?从Codeigniter本身看,它不像,因为它到处都使用前端控制器和单例,很难用PHPUnit进行测试。吐司是为CI定制的。不是辩护,只是解释。
$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;